Workshop Hands on Eclipse PDT 2.x Bastian Feder papaya Software GmbH IPC 2009 15.11.2009
May 06, 2015
Workshop
Hands on Eclipse PDT 2.x
Bastian Federpapaya Software GmbH
IPC 200915.11.2009
Me, myself & I
Application developer PHP since 2001 @papaya since
01.2008 OpenSource addict
Who are you?
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)
Installation (II)
● Java Runtime Environment– Linux: sun-java6-jre from multiverse repository
● Switch off any kind of indexer and/or crawler– Virus scanner
– Spotlight (MacOsX)
– GnomeDo / KRunner (Linux)
– Windows Indexing Service
– ...
Start the engines
#> cd IPC09_Workshop ¶ #> sudo chmod -R ubuntu:ubuntu workspace ¶
#> ./bin/eclipse/eclipse ¶
● Set current language– System > Systemverwaltung >
Sprachunterstützung
● open Anwendungen > Zubehör > Terminal
Configuration
HandsOn
Tips and Tricks (Configuration)
Heap space (memory allocated by JRE)size depends on system memory capacity
▹ Xms, Xmx
▹ XXMaxPermSize, XXPermSize
Eclipse PDT settings▹ validation / build settings
▹ disable automatic updates
Look and feel
HandsOn
Perspectives & Views
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
Working Sets
Group elements for display in views or for operations on a set of elements.
Pause
Until 14:45hrs
Working with Eclipse
Projects Templates Code completion ...
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
File templates
Create new files with predefined structures
Easy to create or adapt
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; }
Pause
Until 16:00hrs
External Tools Framework
Enables Eclipse to run ,stand-alone' applications
Two broad classes of external tools are available:▹ Ant build files
▹ Everything else
Subversive
HandsOn
Subversive (installation)
Eclipse update sitehttp://download.eclipse.org/technology/subversive/0.7/update-site/
Subversion (client 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
Plugins
Subclipsemanaging SVN repositories from inside Eclipse
JSEclipseProvides additional features supporting JavaScript
Data Tools Platformmanaging databases from inside Eclipse
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
Contact'n Rate
Contact▹ Blog: http://bastian-feder.de
▹ Email: [email protected]
Rate the workshop @ http://joind.in/talk/view/1067
References
Eclipse PDT(http://www.eclipse.org/pdt)
Eclipse plugins▹ Subversive (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