The Eclipse PDT team would like to thank everyone who made this release possible. As always, our Eclipse PDT community has provided countless new features, bug fixes, documentation, etc. We'd also like to thank the Eclipse Dynamic Languages Toolkit team for cooperating and helping us with the new infrastructure.

Fully compliant with Eclipse standards, the new 2.0 release enables PHP developers to leverage a wide variety of Eclipse projects, such as Web Tools Project (WTP) and Dynamic Language Toolkit (DLTK), for faster and easier development. PDT 2.0 also offers strong support for Object-Oriented Programming (OOP) in PHP.

What's New in PDT 2.0?

PDT 2.0 was designed based on principles different to those of Eclipse PDT 1.0. For example, different techniques were used to model workspace projects. PDT 2.0 now uses an indexing and caching mechanism for improved performance and experience with code assist and navigation. Moreover, since PHP provides enhanced Object-Oriented features like inheritance and polymorphism, PDT 2.0 provides enhanced features such as type hierarchy, override indicators and type navigation for programmers who utilize these language properties.

Lighter and Faster

As previously mentioned, PDT 2.0 is based on the robust Eclipse framework for caching and indexing language elements, utilizing the proven mechanism used by the Eclipse Dynamic Languages Toolkit project. In addition, PDT 2.0 has a reduced list of dependencies which includes only those features that are a "must have" for PHP developers (so no more unnecessary Java or J2EE components in the tool). Of course, Eclipse provides an easy way to add extra plug-ins as required.

Buildpath Configuration

Although veteran Eclipse users are familiar with this term, it is new to most PHP developers. The Build Path mechanism provides users with the ability to separate application resources (PHP files) from other resources (such as images, CSS, JavaScript files), thereby speeding up the Eclipse build process as well as making the project more modular.

Mark Occurrences

The Mark Occurrences feature enables users to see where an element is referenced by simply clicking on the element in the editor. When the Mark Occurrences feature is enabled, all occurrences of the element within the active file will be highlighted, and indicators will be displayed in the annotations bar (to the right of the editor). 'Read' and 'write' occurrences are marked in different colors.

Override Indicators

'Override Indicators' are markers that display special decoration icons to indicate methods that override or implement other methods from a super-type's class / interface. The override indicators will be displayed as triangles in the marker bar (the vertical ruler to the left of the editor) next to the method's definition. Green triangles indicate an overridden method, while white triangles indicate an implemented method. Hovering over a triangle displays a tool-tip that reveals the overridden or implemented method's super-type.

Type hierarchy

The Type Hierarchy view is exceptionally useful for viewing and navigating OO PHP code. There are three presentation formats available through this view: the Type Hierarchy, the Supertype Hierarchy, and the Subtype Hierarchy. These three presentation formats revolve around a focal point type, indicated by the label decoration, which is the type on which the view was opened. When viewing classes, the view displays the class hierarchy from the object through to all of the class and subclasses. When viewing interfaces, the view displays all classes that implement the interface and their subtypes. When viewing supertypes, the view displays classes that are extended and interfaces that are implemented. When viewing subtypes, the view displays a class and its subclasses or an interface and the classes that implement it.

Type and Method Navigation

Any method or type in the workspace can be opened using the Open Type wizard or the Open Method wizard. The Open Type/Method dialog maintains a history of recently opened elements. These are shown when the dialog is opened and stay above a separator line when filter expressions are typed.

Improved Code Assist

PDT 2.0 introduces a new code assist mechanism. This new mechanism is smarter as it crawls through code to determine variable types, providing more appropriate suggestions than those provided in PDT 1.0. PDT 2.0, code assist also supports camel case matches when entering code, which displays code assist options based on an element's initials. In addition, code assist supports options for 'magic members'. These are properties and methods which were declared using the @property or @method tags within PHP DocBlock comments rather than in the PHP script itself.

Eclipse 3.4.1 Features and Bug Fixes

Eclipse 3.4.1 was released in mid September and provides a variety of bug fixes and useful features. For example, using the Team Project Set feature users can share workspaces with other team members. A project set is a text file that contains a pointer to each of the projects contained in the project set. When a project set is imported, these pointers are used to fetch the projects from the repository. Project sets can include any projects that are mapped to supported repository toolings, such as CVS.
For a full list of new Eclipse 3.4.1 features, click here