PHP development
       with Eclipse PDT
Bastian Feder               IPC 2008
papaya Software GmbH      29.10.2008
Me, myself & I
       Application
        developer
       PHP since 2001
       @papaya since
        01.2008
Agenda
   Installation
   Configuration
   Views & Perspectives
   Projects
   Templates
   Code competetion
   Ext...
Installation
   Download latest revision from Eclipse website
    (http://www.eclipse.org/pdt/downloads)
    ▹   All in o...
Configuration
   Heap space (memory allocated by JVM)
    size depends on system memory capacity
    ▹   Xms, Xmx
    ▹  ...
Views & Perspectives
   Views or Tabs
    (Window > Show View)
    ▹   Viewport providing specific information and/or
   ...
Views & Perspectives   (II)
Projects
    Organizational untis
    Customizeable
     configuration
    PHP include path
     ▹   Validation
     ▹ ...
Templates
   Contextual
    predefined code
    snippets
   Configure at
    Preferences > PHP >
    Templates
Code templates
   Activation key:
    <CTRL> + space
   Code templates
    ▹   Eases typing of complex code structures (...
Code templates               (II)


   Capable of code completion
   Set cursor positioning (${cursor})
   Dynamic cont...
File templates
   File templates
    ▹   Create new files with
        standardized
        structures
    ▹   Easy to cr...
Code completion
                          (Code Assist)

   Configuration via
    Preferences > PHP > Editor > Code Assist
Code completion       (II)
                              (Code Assist)

   Activation key
    <CTRL> + space
   Complete...
Code completion      (III)
     (Code Assist)
Code completion                          (IV)
                                            (Code Assist)

   Documentation...
External Tools Framework
   Enables Eclipse to run ,stand-alone'
    applications
   Two broad classes of external tools...
External Tools Framework   (II)
External Tools Framework    (III)


   Loaction
    Linux / Mac OsX: points to the
    phpDocumentor installation

    Wi...
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,...
xDebug configuration
   Add to php.ini (e.g. on Mac)
 [XDebug]
 ;; Only Zend OR (!) XDebug
 zend_extension=quot;/Applicat...
xDebug   (III)


   Debug dialog
xDebug    (IV)


   Configure PDT to talk to xDebug
xDebug     (IV)


   Configure the 'Server' handling the debugging
    session
Plugins
   Subclipse
    managing SVN repositories from inside Eclipse
   JSEclipse
    Provides additional features sup...
Subclipse (installation)
   Eclipsse update site:
    http://subclipse.tigris.org/update
Subclipse                       (configuration)


     Set „auto-properties“
       ▹   WinXp:
           C:Dokumente und...
Subclipse     (conflict handling)


   Integrated (diff-) editor to resolve conflicts
   Support for merging changes whi...
Questions?
References
   Eclipse PDT
    (http://www.eclipse.org/pdt)

   Eclipse plugins
     ▹   Subclipse      (http://subclipse...
License
This set of slides and the source code included in
the download package is licensed under the

Creative Commons At...
Upcoming SlideShare
Loading in...5
×

Php Development With Eclipde PDT

5,062

Published on

Hands on the Eclipse PDT, how integrate xDebug, phpDocumntor int Eclipse PDT

Published in: Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,062
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
94
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Php Development With Eclipde PDT

  1. 1. PHP development with Eclipse PDT Bastian Feder IPC 2008 papaya Software GmbH 29.10.2008
  2. 2. Me, myself & I  Application developer  PHP since 2001  @papaya since 01.2008
  3. 3. Agenda  Installation  Configuration  Views & Perspectives  Projects  Templates  Code competetion  External Tools Framework  xDebug integration  Plugins
  4. 4. 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)
  5. 5. Configuration  Heap space (memory allocated by JVM) size depends on system memory capacity ▹ Xms, Xmx ▹ XXMaxPermSize, XXPermSize  Eclipse PDT settings ▹ disable code folding ▹ formatting / linebreaks ▹ validation / build settings ▹ disable automatic updates
  6. 6. Views & Perspectives  Views or Tabs (Window > Show View) ▹ Viewport providing specific information and/or functionality  Perspective (Window > Open Perspektive) ▹ Arrangement of Views: PHP Perspektive contains e.g. 'PHP Explorer', 'Outline' and 'Project Outline'
  7. 7. Views & Perspectives (II)
  8. 8. Projects  Organizational untis  Customizeable configuration  PHP include path ▹ Validation ▹ Build rules ▹ ...
  9. 9. Templates  Contextual predefined code snippets  Configure at Preferences > PHP > Templates
  10. 10. Code templates  Activation key: <CTRL> + space  Code templates ▹ Eases typing of complex code structures (e.g. switch – statement) ▹ Minimize errors switch ($action) { ▹ Act like a form case 'read': ; break; default: ; break; }
  11. 11. Code templates (II)  Capable of code completion  Set cursor positioning (${cursor})  Dynamic content by use of variables ▹ ${class}, ${class_container} ▹ ${function}, ${function_container} ▹ ${variable} switch (${dollar}${variable}) { case ${value}: ${cursor}; ▹ ${value} break; default: ; break; }
  12. 12. File templates  File templates ▹ Create new files with standardized structures ▹ Easy to create or adapt
  13. 13. Code completion (Code Assist)  Configuration via Preferences > PHP > Editor > Code Assist
  14. 14. 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)
  15. 15. Code completion (III) (Code Assist)
  16. 16. 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 { class docuHint { private function connect() { /** return mysql_connect_db(); * @var docuDb Database handling } */ } private $dbHandler = NULL; private function connectToDB() { $this->dbHandler = &new docuDb(); $dbh = $this->dbHandler->connect(); } }
  17. 17. External Tools Framework  Enables Eclipse to run ,stand-alone' applications  Two broad classes of external tools are available: ▹ Ant build files ▹ Everything else
  18. 18. External Tools Framework (II)
  19. 19. External Tools Framework (III)  Loaction Linux / Mac OsX: points to the phpDocumentor installation Windows: points to the PHP executable  Working directory directory to store temporary data  Arguments Linux/ Mac OsX: command line parameters to be passed to phpDocumentor. Windows: path to the phpDocumentor installation and command line parameters (e.g.: quot;D:xamppphpphpdocquot; -c quot;$ {project_loc}/doc/tech/config/phpdoc.iniquot; )
  20. 20. External Tools Framework (III)  Display in favorits menu  Standard input & output
  21. 21. xDebug  Debugging for PHP by Derick Rethans (http://www.xdebug.org)  Provides profiling, tracing, code coverage, …  Cross platform
  22. 22. xDebug configuration  Add to php.ini (e.g. on Mac) [XDebug] ;; Only Zend OR (!) XDebug zend_extension=quot;/Applications/xampp/xamppfiles/lib/php/php5/extensions/no-debug-non-zts- 20060613/xdebug.soquot; 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  or .htaccess - file #-------------------------------# # 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 quot;/data_lokal/temp/xdebug/profilingquot;
  23. 23. xDebug (III)  Debug dialog
  24. 24. xDebug (IV)  Configure PDT to talk to xDebug
  25. 25. xDebug (IV)  Configure the 'Server' handling the debugging session
  26. 26. Plugins  Subclipse managing SVN repositories from inside Eclipse  JSEclipse Provides additional features supporting JavaScript  Data Tools Platform managing databases from inside Eclipse
  27. 27. Subclipse (installation)  Eclipsse update site: http://subclipse.tigris.org/update
  28. 28. Subclipse (configuration)  Set „auto-properties“ ▹ WinXp: C:Dokumente und Einstellungen<USER>AnwendungsdatenSubversionconfig ▹ 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
  29. 29. 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
  30. 30. Questions?
  31. 31. 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)
  32. 32. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×