eclipse pdt2.0 26.05.2009

Post on 06-May-2015

1.803 Views

Category:

Self Improvement

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

In late december 2008 the Eclipse Foundation and the PDT developer team released the Eclipse PHP Development Platform version 2.0. This release comes with a number of enhancements and improvements to the prior version of PDT. This talk is about these changes. It also gives you an introduction how to prepare your Eclipse PDT workspace to be an accessible and provding companion for your daily work by integrating xDebug, subversive and phpDocumentor using the external tools platform.

TRANSCRIPT

PHP development with Eclipse PDT 2.0

Bastian Federpapaya Software GmbH

IPC 200926.05.2009

Me, myself & I

Application developer PHP since 2001 @papaya since

01.2008 OpenSource addict

Agenda Installation Views & Perspectives Projects Templates Code completion What's new? Tips & Tricks External Tools Framework xDebug integration Plugins

Installation

Download latest revision from Eclipse website(http://www.eclipse.org/pdt/downloads)▹ All in one (recommended):

provides everything you need to run PDT▹ PDT Feature / Update Manager:

extends an existing Eclipse, but all dependencies PDT relies on needs to be installed first.

Extract archive Copy to favorized location

(e.g. /usr/local/bin/ or another location in your application path)

Views & Perspectives

Perspective(Window > Open Perspektive)

▹ Arrangement of Views:PHP Perspektive contains e.g. 'PHP Explorer', 'Outline' and 'Project Outline'

Views or Tabs(Window > Show View)

▹ Viewport providing specific information and/or functionality

Views & Perspectives (II)

Projects

Organizational untis Customizable configuration PHP include path

▹ Validation Build rules

▹ included resources▹ excluded resources

Templates

Contextual predefined code snippets

Configure at Preferences > PHP > Templates

Code templates

Activation key:<CTRL> + space

Code templates▹ Eases typing of complex code structures

(e.g. switch – statement)▹ Minimize errors▹ Act like a form

switch ($action) { case 'read': ; break;

default: ; break; }

Code templates (II)

Capable of code completion Set cursor positioning (${cursor}, ${}) Dynamic content by use of variables▹ ${class}▹ ${function}▹ ${variable}▹ ${value}

switch (${dollar}${variable}) { case ${value}: ${cursor}; break;

default: ; break; }

File templates

File templates▹ Create new files with

standardized structures

▹ Easy to create or adapt

Code completion (Code Assist)

Configuration via Preferences > PHP > Editor > Code Assist

Code completion (II)(Code Assist)

Activation key<CTRL> + space

Completes▹ PHP functions▹ Classes & functions▹ Constants▹ Code templates

Evolves with every plugin supporting this feature (e.g. JSEclipse)

Code completion (III)(Code Assist)

Code completion (IV)(Code Assist)

Documentation hint▪ declaring the name of a class to be instantiated as the

type of the 'local' class var will enable Eclipse to resolve the methods of the instantiated class:

class docuDb {

private function connect() { return $this->dbHandler->connect(); } }

class docuHint { /** * @var docuDb Database handling */ private $dbHandler = NULL;

private function connectToDB() { $this->dbHandler = &new docuDb(); $dbh = $this->dbHandler->connect(); } }

What's new in PDT 2.0? Less dependencies Improved indexing and caching▹ cleanup of unnecessary depedencies to Java

Mark occurrences Configurable Buildpathes Improved code completion

▹ Camelcase matching

What's new in PDT 2.0? (II)

Enhanced features to support OOP in PHP▹ Overwrite Indicators

What's new in PDT 2.0? (III)

Enhanced features to support OOP in PHP▹ Type & name

hierarchies

External Tools Framework Enables Eclipse to run ,stand-alone'

applications Two broad classes of external tools are

available:▹ Ant build files▹ Everything else

External Tools Framework (II)

External Tools Framework (III)

LoactionLinux / Mac OsX: points to the phpDocumentor installation

Windows: points to the PHP executable

Working directorydirectory to store temporary data

ArgumentsLinux/ Mac OsX: command line parameters to be passed to phpDocumentor.

Windows: path to the phpDocumentor installation and command line parameters(e.g.: "D:\xampp\php\phpdoc" -c "${project_loc}/doc/tech/config/phpdoc.ini")

External Tools Framework (III)

Display in favorits menu

Standard input & output

xDebug

Debugging for PHP by Derick Rethans(http://www.xdebug.org)

Provides profiling, tracing, code coverage, … Cross platform

xDebug configuration

Add to php.ini (e.g. on Mac)

or .htaccess - file

[XDebug] ;; Only Zend OR (!) XDebug zend_extension="/Applications/xampp/xamppfiles/lib/php/php5/extensions/no-debug-non-zts-20060613/xdebug.so" xdebug.remote_enable=true xdebug.remote_host=127.0.0.1 ;if debugging on remote server, put client IP here xdebug.remote_port=9000 xdebug.remote_handler=dbgp ;; profiler xdebug.profiler_enable=Off xdebug.profiler_enable_trigger=On xdebug.profiler_output_dir=/data_lokal/temp/xdebug/profiling

#-------------------------------# # xDebug section # #-------------------------------# php_value xdebug.remote_enable 1 php_value xdebug.remote_handler bdgp php_value xdebug.remote_host 127.0.0.1 ;if debugging on remote server, put client IP here;; php_value xdebug.allowed_clients <client IP address> php_value xdebug.remote_port 9000 # profiler php_value xdebug.profiler_enable_trigger 1 php_value xdebug.profiler_enable 0 php_value xdebug.profiler_output_dir "/data_lokal/temp/xdebug/profiling"

xDebug (III)

Debug dialog

xDebug (IV)

Configure PDT to talk to xDebug

xDebug (IV)

Configure the 'Server' handling the debugging session

Tips and Tricks (Configuration)

Heap space (memory allocated by JVM)size depends on system memory capacity▹ Xms, Xmx▹ XXMaxPermSize, XXPermSize

Eclipse PDT settings▹ validation / build settings▹ disable automatic updates▹ disable code folding

Plugins

Subclipsemanaging SVN repositories from inside Eclipse

JSEclipseProvides additional features supporting JavaScript

Data Tools Platformmanaging databases from inside Eclipse

Subclipse (installation)

Eclipse update site:http://subclipse.tigris.org/update

Subclipse (configuration)

Set „auto-properties“ ▹ WinXp:

C:\Dokumente und Einstellungen\<USER>\Anwendungsdaten\Subversion\config

▹ MacOs / Linux: ~/.subversion/config

[miscellany] global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store .project .cache .settings enable-auto-props = yes

[auto-props] *.js = svn:eol-style=LF;svn:keywords=Id LastChangedDate LastChangedRevision URL *.css = svn:eol-style=LF;svn:keywords=Id LastChangedDate LastChangedRevision URL *.php = svn:eol-style=LF;svn:keywords=Id LastChangedDate LastChangedRevision URL *.html = svn:eol-style=LF;svn:mime-type=text/html;svn:keywords=LastChangedDate LastChangedRevision URL *.htm = svn:eol-style=LF;svn:mime-type=text/html;svn:keywords=LastChangedDate LastChangedRevision URL *.xsl = svn:eol-style=LF *.xml = svn:eol-style=LF *.xsd = svn:eol-style=LF

Subclipse (conflict handling)

Integrated (diff-) editor to resolve conflicts Support for merging changes which do not

conflict Preview on the checkout to find conflicts before

updating the sources

Questions?

Further questions? Ask me at:

lapistano@php.net

References

Eclipse PDT(http://www.eclipse.org/pdt)

Eclipse plugins▹ Subclipse (http://subclipse.tigris.org)

▹ JSEclipse (http://www.interaktonline.com/products/eclipse/jseclipse/overview)

xDebug(http://www.xdebug.org)

PhpDocumentor @ pear.php.net(http://pear.php.net/package/PhpDocumentor/docs/1.4.2)

SVN keyword substitution(http://svnbook.red-bean.com/en/1.4/svn-book.html#svn.advanced.props.special.keywords)

License

This set of slides and the source code included in the download package is licensed under the

Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic

License

http://creativecommons.org/licenses/by-nc-sa/2.0/deed.en

top related