Download pdf - Eclipse Pdt2.0 26.05.2009

Transcript
Page 1: Eclipse Pdt2.0 26.05.2009

PHP development with Eclipse PDT 2.0

Bastian Federpapaya Software GmbH

IPC 200926.05.2009

Page 2: Eclipse Pdt2.0 26.05.2009

Me, myself & I

Application developer PHP since 2001 @papaya since

01.2008 OpenSource addict

Page 3: Eclipse Pdt2.0 26.05.2009

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

Page 4: Eclipse Pdt2.0 26.05.2009

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)

Page 5: Eclipse Pdt2.0 26.05.2009

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

Page 6: Eclipse Pdt2.0 26.05.2009

Views & Perspectives (II)

Page 7: Eclipse Pdt2.0 26.05.2009

Projects

Organizational untis Customizable configuration PHP include path

▹ Validation Build rules

▹ included resources▹ excluded resources

Page 8: Eclipse Pdt2.0 26.05.2009

Templates

Contextual predefined code snippets

Configure at Preferences > PHP > Templates

Page 9: Eclipse Pdt2.0 26.05.2009

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; }

Page 10: Eclipse Pdt2.0 26.05.2009

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; }

Page 11: Eclipse Pdt2.0 26.05.2009

File templates

File templates▹ Create new files with

standardized structures

▹ Easy to create or adapt

Page 12: Eclipse Pdt2.0 26.05.2009

Code completion (Code Assist)

Configuration via Preferences > PHP > Editor > Code Assist

Page 13: Eclipse Pdt2.0 26.05.2009

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)

Page 14: Eclipse Pdt2.0 26.05.2009

Code completion (III)(Code Assist)

Page 15: Eclipse Pdt2.0 26.05.2009

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(); } }

Page 16: Eclipse Pdt2.0 26.05.2009

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

Page 17: Eclipse Pdt2.0 26.05.2009

What's new in PDT 2.0? (II)

Enhanced features to support OOP in PHP▹ Overwrite Indicators

Page 18: Eclipse Pdt2.0 26.05.2009

What's new in PDT 2.0? (III)

Enhanced features to support OOP in PHP▹ Type & name

hierarchies

Page 19: Eclipse Pdt2.0 26.05.2009

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

applications Two broad classes of external tools are

available:▹ Ant build files▹ Everything else

Page 20: Eclipse Pdt2.0 26.05.2009

External Tools Framework (II)

Page 21: Eclipse Pdt2.0 26.05.2009

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")

Page 22: Eclipse Pdt2.0 26.05.2009

External Tools Framework (III)

Display in favorits menu

Standard input & output

Page 23: Eclipse Pdt2.0 26.05.2009

xDebug

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

Provides profiling, tracing, code coverage, … Cross platform

Page 24: Eclipse Pdt2.0 26.05.2009

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"

Page 25: Eclipse Pdt2.0 26.05.2009

xDebug (III)

Debug dialog

Page 26: Eclipse Pdt2.0 26.05.2009

xDebug (IV)

Configure PDT to talk to xDebug

Page 27: Eclipse Pdt2.0 26.05.2009

xDebug (IV)

Configure the 'Server' handling the debugging session

Page 28: Eclipse Pdt2.0 26.05.2009

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

Page 29: Eclipse Pdt2.0 26.05.2009

Plugins

Subclipsemanaging SVN repositories from inside Eclipse

JSEclipseProvides additional features supporting JavaScript

Data Tools Platformmanaging databases from inside Eclipse

Page 30: Eclipse Pdt2.0 26.05.2009

Subclipse (installation)

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

Page 31: Eclipse Pdt2.0 26.05.2009

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

Page 32: Eclipse Pdt2.0 26.05.2009

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

Page 33: Eclipse Pdt2.0 26.05.2009

Questions?

Further questions? Ask me at:

[email protected]

Page 34: Eclipse Pdt2.0 26.05.2009

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)

Page 35: Eclipse Pdt2.0 26.05.2009

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


Recommended