Getting Started with Eclipse PHP Development Tools (PDT)
Are you ready to take a step beyond writing code in a text editor like UltraEdit, BBEdit, or TextMate? Would you like to see those PHP and JavaScript syntax errors in the editor, without transferring files to the server or opening a browser? If so, then you're ready to jump into the world of the IDE — Integrated Development Environment. I'll compare the free, open source Eclipse IDE to a few of its commercial competitors Then we'll go through the steps to install Eclipse PDT All-In-One, the Zend Debugger, JSEclipse, and Subclipse.
Why an IDE? Let there be no mistake, I still love BBEdit and TextMate. I use both daily at work and at home for quick edits and I actually wrote this post in TextMate. But if you spend a good portion of your day writing PHP, an IDE will save you time in small increments by highlighting those unbalanced braces and missing semicolons, displaying PHP function arguments, and allowing you to debug your code right in the editor.
There are commercial IDEs available and I've use a few of them. I tried an early version of Eclipse with the xored studio but the combo wasn't feature-rich and didn't perform as well as Zend Studio. I later switched from Zend to Active State's Komodo. I've been happy Komodo but it's sluggish performance on my PPC Mac drove me back to giving Eclipse another try.
I started using Eclipse with PDT at work about a year and am amazed at how much PDT, formerly PHP IDE, has improved over the past four years. Eclipse is first a Java development environment, but extensions exist for a bunch of other languages, including Perl, Ruby, and Tcl. Okay, enough with the commentary, let's get to it, shall we?
Download and install Eclipse PDT All-In-One
Installation couldn't be easier. Visit the Eclipse PDT download page, select a stable build link, scroll down to the PDT All-in-One section, and select the download for your platform.
http://download.eclipse.org/tools/pdt/downloads/
Once the download is complete, unpack and move the 'eclipse' folder to your Applications or Program Files folder. Fire up Eclipse, create a new PHP file or project, and code away.
Install the Zend Debugger
Out of the box, Eclipse provides PHP syntax highlighting, code completion, PHP documentation, phpDoc support, and more. Local and server debugging, however, require the installation of XDebug or Zend Debugger extension. Here's how to enable local debugging with the Zend Debugger.
- Select Help->Software Updates->Find and Install
- Select Search for new features to install, click Next
- Click the New Remote Site button...
- Name: Zend Debugger
- URL: http://downloads.zend.com/pdt
- Zend Debugger now appears checked in the Sites to include in search list, click Finish
- The update manager searches for the files to download
- All Zend Debugger options should be checked on the Search Results screen, click Next
- Agree to the licensing terms, click Next
- Select the Zend Debugger in the Features to Install screen, you can change the install location, but the default is recommended, click Finish
- Verify the Zend Debugger on the Feature Verification screen, click Install All
- After installation you'll be asked to restart Eclipse for the changes to take affect
You should now have a PHP Debug Perspective, complete with variable tracing, breakpoints, and CLI and browser debug output views.
Install JSEclipse
To add improved JavaScript editing abilities to Eclipse, install JSEclipse from Adobe Labs. JSEclipse also provides editing support for popular JavaScript libraries, including YUI, Dojo, Prototype, and more. To install JSEclipse with the Update Manager
- Select Help->Software Updates->Find and Install
- Select Search for new features to install, click Next
- Click the New Remote Site button...
- Name: JSEclipse
- URL: http://download.macromedia.com/pub/labs/jseclipse/autoinstall/site.xml
- JSEclipse now appears checked in the Sites to include in search list, click Finish
- The update manager searches for the files to download
- Check the JSEclipse version check box on the Search Results screen, click Next
- Agree to the licensing terms, click Next
- Select JSEclipse in the Features to Install screen, you can change the install location, but the default is recommended, click Finish
- Verify JSEclipse on the Feature Verification screen, click Install All
- After installation you'll be asked to restart Eclipse for the changes to take affect
To create a new JS file, select New->File->Other->Web->JavaScript. You should now have code completion and error highlighting for JavaScript files.
Install Subclipse
To add support for Subversion revision management you'll need to install Subclipse from tigris.org, the developers of Subversion. To install, let's use the Update Manager again.
- Select Help->Software Updates->Find and Install
- Select Search for new features to install, click Next
- Click the New Remote Site button...
- Name: Subclipse 1.2.x
- URL: http://subclipse.tigris.org/update_1.2.x
- Subclipse now appears checked in the Sites to include in search list, click Finish
- The update manager searches for the files to download
- Check the Subclipse version check box on the Search Results screen. You may need to install dependent extensions for the Subclipse integrations (I didn't select integrations), click Next
- Agree to the licensing terms, click Next
- Select Subclipse in the Features to Install screen, you can change the install location, but the default is recommended, click Finish
- Verify Subclipse on the Feature Verification screen, click Install All
- After installation you'll be asked to restart Eclipse for the changes to take affect
To checkout an existing Subversion repository
- Select New->File->Other->SVN->Checkout Projects from SVN, click Next
- Create a New Repository, click Next
- Enter the URL for the SVN repository you want to checkout, click Next
- If the repository URL is secure, accept the SSL certificate
- Select the folder(s) to checkout
- Create a new Project, select the Project type, PHP Project in this case, click Next
- Enter a Project name, workspace, and any other project specific settings, click Finish
- You'll see an overwrite warning that any SVN repository files with the same names as Eclipse settings files, normally you shouldn't need to worry about this, click OK
- The project is checked out of the repository
I've just started to use some of the data integration and design extensions available for Eclipse and will post a followup soon. In the meantime, happy coding!
















Comments
Drag'n'Drop HTML components?
Hello,
Is there any drag'n'drop functionality in Eclipse PDT for HTML components? There is a similar extension for JEE that allows creating JSP pages with HTML tags that might be directly drag'n'dropped through a list with components. Is that possible in the PDT version?
Not that I'm aware of.
Not that I'm aware of.
Help
Hi,
I have followed all the steps that you had mentioned in the article.When i try to execute the php file in my web browser it shows the following error.
"Note that no files will be published to the server "
I have installed All-in-one Eclipse package and the Apache HTTP 2.2.11 web server.Both are working fine individually.But, when i try to run i get the error.Please help me i am new to PHP.
I'm new to PHP and Eclipse.
I'm new to PHP and Eclipse. I downloaded the Eclipse PDT all-in-one as instructed and created a simple .php file. When I run the file from inside Eclipse I get the following:
-------------------------------------------------------
This program cannot display the webpage
Most likely causes:
You are not connected to the Internet.
The website is encountering problems.
There might be a typing error in the address.
What you can try:
Check your Internet connection. Try visiting another website to make sure you are connected.
Retype the address.
Go back to the previous page.
More information
This problem can be caused by a variety of issues, including:
Internet connectivity has been lost.
The website is temporarily unavailable.
The Domain Name Server (DNS) is not reachable.
The Domain Name Server (DNS) does not have a listing for the website's domain.
-------------------------------------------------------
I'm not sure what to do next. Do you have any suggestions?
Do you want to run the
Do you want to run the script or debug it? Until you get more familiar with eclipse, it might be better to run/test scripts on a development server. If you're running Mac OS X, you might try these steps to set up a local development server.
Quantum DB
This is a very good article. Any further info or comments on Quantum DB (with MySQL ODBC) or any other way to access/debug an associated DB while developing the PHP that uses it would be greatly appreciated.
So far it seems to me that the Zend PDT does not include a DB plug-in. I'm new at using an IDE for PHP & MySQL, and including more details about the DB would be quite helpful.
Thanks!
A PDT Problem
I've been Googling all afternoon and can't figure out how to solve this:
I keep all of my web projects in a directory, with subdirectories for clients and subdirectories of those for their websites.
When I start a new site, I set up a VirtualHost on my local copy of Apache and give it a name like: projectname.localhost.com, that VirtualHost uses /Users/me/web_work/client_name/project_name as it's DocumentRoot/Directory
So...
Typically, I'll use .htaccess in a site's root folder to include a file, init.php. This file will define all of the paths and include any classes, pear libraries...anything that needs including. It's broken into 2 sections: includes for my local development machine/ includes for the production server.
So, without that .htaccess file being evaluated by apache and apache using the php_auto_prepend value found there...init.php doesn't get included and none of the required files do either.
So, in Eclipse...when I go to debug...nothing works. The debugger is missing all of the required files for the project.
How can I tell an eclipse project to always include certain files when running the debugger?
Also, are there any recommended forums for Eclipse PDT users?
Excellent IDE, hoping to get it's configuration squared away so I can use it to it's full potential.
You want to set up a
You want to set up a debugger as part of your apache server, then use that debugger's plugin in eclipse as a client.
Here's an example of how to do this with XDebug:
http://nalakajayasena.wordpress.com/2007/12/07/debugging-php-with-pdt-an...
Debugging options
Hrm. Not sure on the include question. You might try structuring your init file's host check to check for the production environment first and your not in production, default to development.
Short of that, take a look at setting up server-side debugging on your local dev server. Firebug + FirePHP might be another option.
I haven't really looked for a good PDT forum. If you find one, please share.
Hi, Thank you very much for
Hi,
Thank you very much for this article , grate one
Intellisense is not working
I installed PDT but intellisense is not working for me..Can anybody help me out??
Any hint about running under OpenSuse 11.0 ?
Hello to everybody. When download eclipse-pdt all-in-one and run ./eclipse, I unfortunately get the following :
JVM terminated. Exit code=13
/usr/bin/java
-Xms40m
-Xmx256m
-jar /home/fda/Desktop/eclipse/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar
-os linux
-ws gtk
-arch x86
-showsplash
-launcher /home/fda/Desktop/eclipse/eclipse
-name Eclipse
--launcher.library /home/fda/Desktop/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.3.R33x_v20080118/eclipse_1023.so
-startup /home/fda/Desktop/eclipse/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar
-exitdata a70007
-vm /usr/bin/java
-vmargs
-Xms40m
-Xmx256m
-jar /home/fda/Desktop/eclipse/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar
Could it be possibly related to the fact that I am running the x86-64 version of OpenSuse ?
My version of java seems to be the 1.6.0 :
$ java -version
java version "1.6.0"
IcedTea Runtime Environment (build 1.6.0-b09)
OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
Any hint about what is going on ? :-/
thanks for information.
thanks for information.
Yes x86-64 problem
I had same issue on ubuntu heron x86-64 when trying to run the allin one package and using iether sun java or open java I got JVM terminated. Exit code=13
I ended up installing eclipse ganymede linux 64 bit version from eclipse downloads then installing pdt seperately.
Works fine now
:-)
I can't see php inside Eclipse
I have installed Eclipse PDT All-In-One on two different computers. On one of them I can see php in the perspectives and everything works fine, but on the other I can't see php anywhere. I have tried everything I could imagine but haven't figured out what the problem is.
It's just weird, but maybe someone has a hint?
Thanks,
Andrea
I have the same problem.
I have the same problem. After upgrading to JDK 1.6, the problem was solved.
Good Luck!
how to save the modifed file to remote system
I've eclipse with rse installed. Am able to navigate and view the files of the remote machine connected. Now after modifying a file it saves to my local machine. I don't know how to save the same file to the remote machine connected..? kindly help me out..
Where is the introduction?
So now I installed PDT and the features, but I was expecting a guide and introduction to most relevant tools and processes when working with this program...
Java 6 update 7
I still don't have PDT :(
no php in eclipse
Hi,
I've copied all files to the eclipse folder but in eclipse there is no mention about php.
Where download JSEclipse
There's no more JSEclipse on adobe .... where should i download it ?
Apparently the JSEclipse update site has changed
I updated the link in the instructions but haven't tested it. Not sure why it changed or if the link I found will continue to be available, if it works.
Please report back if to let folks know if it works or not. I'll try to investigate more when I have time.
Thanks for the links
Thank you very much, the link work ...
Debugger
I followed the install guide from above however when pressing F11 to run debugger, I receive a error stating: "Unable To Launch", "The selection cannot be launched, and there are no recent launches.".
Am I doing something wrong? I am use to UltraEdit with the PHP EXE. You just press a button and it debuggers and outputs any errors.
Thanks
Todd
PDT installs PHP?
Great article. I'm new to Eclipse and was wondering, does the PDT all-in-one package install PHP for you on your computer?
Yes, it does, but...
It installs PHP binaries for running and debugging purposes. These binaries are CLI-only, not the PHP module for Apache.
Take a look at the PHP 4 and 5 binaries in org.zend.php.debug.debugger.macosx_5.2.12.v20071210/resources/
thanks for the help. i'm now
thanks for the help. i'm now up and running with PHP.
hi
Thanks for this detailed articles on installing all these plugins. Being wanting answers for a long time now.Am so glad i stumbled on your website. Great work!!
Detailed step-by-step guide for setting up PDT+XDebug
Here's a detailed step-by-step article for setting up a PHP debugger using PDT+XDebug and XAMPP:
http://robsnotebook.com/php_debugger_pdt_xdebug
Thanks for sharing Rob.
Thanks for sharing Rob.
I couldn't get the debugger
I couldn't get the debugger going in 1.0.3. I did some reading and found a number of things have changed in this version but couldn't find sufficient documentation to follow on. I will try again later when hopefully all the changes are well documented. Thanks for the article.
Publishing to the server
Unless I've missed something, I can't find a way to publish my files to my Apache server.
Does Zend do this for you? Based on the Help in Eclipse, it does not. And for me, as a newbie to PHP, it's really helpful to have the files publish right from my project in Eclipse.
Is there any word on if this is coming? Right now I'm keeping my files in a static web project, so they'll automatically publish to my server when I save them. And then I'll just copy them back when I need to use the debugger.
I have the same question. I
I have the same question. I cant get my PDT configured to have the files published to the Apache Web server directly. How did you use static web project to do this? Can you elaborate? thanks
Two methods to publish, probably others
@PHPn00b and @btm, I'm aware of two methods to publish project files. I use Subversion to manage revisions and to checkout updates on my production server and am very happy with the flexibility and power using version control provides.
@ragaskar commented on the RSE Eclipse plugin which might open up the possibility of publishing files from the command line via scp or ftp.
There may be other file publishing plugins that provide what you're looking for.
How to publish direct to the server
If the webroot is on your local filesystem, set the project directory to somewhere on your webroot - then Eclipse IS publishing to the server.
If not, get ssh or ftp access to the server (do Windows boxes support SSH? If not, your situation is starting to look pretty bad if the host is a Windows host).
In Linux you can use sshfs or ftpfs to mount a directory and then set that as your project directory - thus saving files directly to the remote server. Under KDE you might be able to take a shortcut using the kio protocol handlers.Under Windows I don't know how to actually mount the remote directories but you can synchronize them using a program like WinSCP or SmartSCVP.
So the answer in short is that yes, if you set the project directory correctly Eclipse publishges to the webserver by default. If you can't do that then you can at least emulate it.
thanx for your writing to
thanx for your writing to post, I like your web site and good lucky. Regards.
Whenever I open a file in
Whenever I open a file in php, it always opens in other editor(dreamweaver 8.0). The same thing happens when moving between php file tabs already in the workbench. So I m forced to work in dreamweaver editor.
Kindly provide the solution.
Change File Association on Windows
Open My Computer, and on the menu bar choose Tools -> Folder Options and take a look at the File Types tab. Scroll down on the registered file types and find and edit the .php extensions. Hope this helps.
Change editor file associations
You can change the editor associated with files that have a .php file extension. I don't recall how to do it on Windows, but on the Mac, select a PHP file, select Get Info, change the Open With value, and click the 'Change All...' button.
Debugger
I installed the all in one package for Windows and I can set breakpoints etc and there seems to be some mention in the settings that its using the zend debugger however I cannot get it to stop on the breakpoint. Do i still need to install the Zend debugger? I have seen contrasting documentation to say the all in one does containt the debugger and documentation that it doesn't.
Tutorial Eclipse PDT using Zend Debugger
Hello,
I've also been struggling with getting the Zend Debugger to work inside eclipse PDT but finally it works! I made a tutorial of 7 page's describing the installation/use of the Zend Debugger on a local Wamp 1.7.4 PHP server.
You can download the tutorial together with a eclipse PHP project 'debugtester' from http://www.kinetiek.com/files/download/debugtester.zip.
regards, Mike
Thanks Mike
Really useful tutorial :)
Yes, I believe so
Despite what you've seen to the contrary, I'd go ahead and install the debugger. If that doesn't work, perhaps you could try Xdebug.
why jsEclipse and not Aptana?
Thats the question, why using jsEclipse and not the Aptana plug-in for Eclipse?, I think is much complete
I hadn't tried Aptana. The
I hadn't tried Aptana. The fact that JSEclipse is developed by Adobe was appealing and JSEclipse seemed to have more Google-juice when I did my initial search for a JavaScript eclipse plugin. Can you share some of Aptana's features?
What's the difference in between phpeclipse ana pdt project?
Hi php gurus,
Since, I am new...to start my step with "which IDE on php?" is the big question?
What's the difference in between phpeclipse ana pdt project?
Which is one the latest and robust one and would recomended, like my java IDE - eclipse?
Please, help me to choose the best IDE for PHP base projects development?
Thanks in advance.
~S
I haven't used phpeclipse,
I haven't used phpeclipse, but I've talked with a friend about it. This friend tells me that phpeclipse provides more features than PDT. What he's noticed, however, is that PDT appears to be a more active project and more highly supported project. This article may help you in your decision making process: http://divby0.blogspot.com/2007/07/phpeclipse-vs-pdt.html
PDT on Ubuntu
I wanted to pass along the only way I found to get PDT installed and working on Ubuntu Gutsy...
I had no luck with the Eclipse from the Ubuntu repositories, and certainly no luck with anything related to GCJ. I've spent two days now on it.
What I did that finally appears to be working:
- remove all GCJ and Java stuff
- install Sun's 1.5 JDK
- download the J2EE Europa version
* ( at this point, Eclipse works) *
- add PDT as a new Remote Site to Eclipse's updater, and force it to download the files only from the PDT site itself (due to some bug with mirrors -- see http://dev.eclipse.org/blogs/wayne/2007/09/18/php-for-nothing/)
I then had PDT installed and working, and could then follow the instructions from this blog post for adding Subclipse and JSEclipse. I didn't bother with Zend Debugger, because I think PDT should be able to use xdebug ok.
Thanks
Thanks for sharing.
Thank you!!
Thank you!!
Your article in beautiful.