Getting Started with Eclipse PHP Development Tools (PDT)

Eclipse Splash ScreenAre 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.

  1. Select Help->Software Updates->Find and Install
  2. Select Search for new features to install, click Next
  3. Click the New Remote Site button...
    1. Name: Zend Debugger
    2. URL: http://downloads.zend.com/pdt
  4. Zend Debugger now appears checked in the Sites to include in search list, click Finish
  5. The update manager searches for the files to download
  6. All Zend Debugger options should be checked on the Search Results screen, click Next
  7. Agree to the licensing terms, click Next
  8. Select the Zend Debugger in the Features to Install screen, you can change the install location, but the default is recommended, click Finish
  9. Verify the Zend Debugger on the Feature Verification screen, click Install All
  10. 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

  1. Select Help->Software Updates->Find and Install
  2. Select Search for new features to install, click Next
  3. Click the New Remote Site button...
  4. JSEclipse now appears checked in the Sites to include in search list, click Finish
  5. The update manager searches for the files to download
  6. Check the JSEclipse version check box on the Search Results screen, click Next
  7. Agree to the licensing terms, click Next
  8. Select JSEclipse in the Features to Install screen, you can change the install location, but the default is recommended, click Finish
  9. Verify JSEclipse on the Feature Verification screen, click Install All
  10. 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.

  1. Select Help->Software Updates->Find and Install
  2. Select Search for new features to install, click Next
  3. Click the New Remote Site button...
  4. Subclipse now appears checked in the Sites to include in search list, click Finish
  5. The update manager searches for the files to download
  6. 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
  7. Agree to the licensing terms, click Next
  8. Select Subclipse in the Features to Install screen, you can change the install location, but the default is recommended, click Finish
  9. Verify Subclipse on the Feature Verification screen, click Install All
  10. After installation you'll be asked to restart Eclipse for the changes to take affect

To checkout an existing Subversion repository

  1. Select New->File->Other->SVN->Checkout Projects from SVN, click Next
  2. Create a New Repository, click Next
  3. Enter the URL for the SVN repository you want to checkout, click Next
  4. If the repository URL is secure, accept the SSL certificate
  5. Select the folder(s) to checkout
  6. Create a new Project, select the Project type, PHP Project in this case, click Next
  7. Enter a Project name, workspace, and any other project specific settings, click Finish
  8. 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
  9. 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!

Related Links

filed under:

Comments

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

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.

Code completion

Is the code completion functionality supposed to cover project-specific included classes as well? The PHPEclipse plugin seems to have a larger, more updated library for code completion then the PDT. Any thoughts on this?

Code completion relies on PHPdoc comments

AFAIK, if the class isn't documented PHPdoc-style, there's no code completion.

Code Completion relies on PHPdoc comments

I checked the .profile file, so I'm sure my project has got the PHP-perspective.
So I opened one of the files with a class and added a comment @method to the constructor, and @package just above the class declaration.
But I still get no code completion. Did I miss something?

By the way, thanks for a lot of good hints on this blog!

Did you also comment your class' member functions?

You need to comment function parameters and return values to full enable code completion. You should also comment class variables.

  1. /**
  2.  * Method description
  3.  * @param datatype $arg1 Arg1 description
  4.  * @param datatype $arg2 Arg2 description
  5.  * @return datatype Return value description
  6.  */
  7. function myfunction($arg1, $arg2) {
  8. ...
  9. }

Where is the PHP perspective? How to add PHP projects?

I have the same problem. No PHP Project under New. No php perspective is visible under Perspectives.
1) Cleaning doesn't help (i.e. starting with "eclipse -clean") so it's not a chaching problem.
2) Re-installing doesn't help.
3) installing eclipse Europa and adding PDT only doesn't help.

Does anybody have a clue?

Best wishes, Mike

Where is PHP perspective?

I installed everything to integrate php into eclipse and noticed that the php didn't appear directly in the new list. But did you happen to go File -> new -> other -> PHP

A new JRE worked for me

Just installed a new Java Runtime Environment. Now I see PHP perspectives in Eclipse and I can create a new PHP project.

JRE Version: 1.6.0_03-b05.

Maybe this might help for you too.

Good luck, Mike

Thank you, Thank you, Thank you

Installing latest JRE worked for me also. Nothing more frustrating then installing something new and having the simplest task not work.

java5 required

1.5.0_12-b04 works too
1.4.2_14-b05 doesn't work

after first start there was LOOOONG time to start eclipse but after that it's working nice and smooth even with php debugger.

thanks a lot for good plugin tip

Thanks for sharing

It's always nice to see someone return and share a solution to a problem.

Under ubuntu

I was put:
./eclipse -vm /opt/jdk1.6.0_03/jre/lib/i386/server/

and it's work ;)

PDT without the P

Same problem - no php Project under New, and opening a php file uses the old editing application. No php perspective is visible under Perspectives.

Using part of another distro

I copy the folder jre from easyeclipse-php-1.2.2.2 to pdt-all-in-one-1.0. Then i restart the pdt-all-in-one-1.0 and automagically appear the php perspective. :P

Just downloaded all in one...

...and there's nothing in any of the menus that would appear to be PHP enabled. I also ran the update to get the Zend debugger, thinking that might do something.

No code highlighting, no PHP-specific menu entries or choices, nada. It looks like a raw Eclipse install to me.

What am I missing?

Just started using this PDT

Just started using this PDT thingy. Noticed that JRE must be 1.5 or PDT won't show up in your menus. If your system JVM is 1.4, you can start Eclipse with -vm PATH_TO_JRE_1.5 and you will be fine.

That's odd...

Do you see a PHP and PHP Debug perspective under Window->Open Perspective->Other...?

PDT and Zend's IDE remind me

PDT and Zend's IDE remind me why I absolutely abhor Java Applications. Slow, bloated, and buggy is the order of the day (at least on my 1.3ghz PPC Mac).

PDT regularly consumes up to 350mb plus of memory on my machine.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <codeblock> <blockquote> <h1> <h2> <h3> <h4> <h5> <img>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. PHP source code can also be enclosed in <?php ... ?> or <% ... %>.
  • Use the special tag [adsense:format:group:channel] or [adsense:flexiblock:location] to display Google AdSense ads.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.