Project Management with EnginSite
Another neat feature is the ability to handle projects in EnginSite, and in particular to turn existing directories of loosely arranged PHP, HTML, and other resources into a single coherent workspace using the Project Assistant. This wizard is available from the File->New dialog (see earlier) or from the Project Menu. To put it through its paces I downloaded source code
from a DevX article
. Generally a download is a bunch of HTML, PHP, and various graphics files, and this code is no exception. I unzipped this into a directory and pointed the Project Assistant at that directory. You can see the results in Figure 1 where the IDE loaded the project explorer with these files without any prompting. In addition, it goes through all your code and picks out all instances of includes, classes, interfaces, functions, variables, and constants.
Figure 4 shows this activity in the workspace 'Navigator' tab. You can now jump directly to the declaration of any of these assets by selecting them from within the Navigator. I highlighted the reference to the $ship_factor variable from my code and the IDE found the file that contained it, loaded it, and highlighted the line where it was declared (see Figure 4).
|Figure 4. Using the Project Navigator: The Navigator function lets you see all your assets in a list. Select any one you like and the right pane jumps immediately to the file that contains it and highlights the line where it is declared. |
There are too many project-related enhancements to list them all, but all the things you might want are included, such as publishing to FTP or WebDAV sites, integration with CVS, remote file browsing, etc. It's a pretty comprehensive package.
The holy grail of any server-side scripting language is the facility to debug. EnginSite comes through beautifully with a built-in PHP parser and web server that makes debugging a snap. You can set breakpoints (or even conditional breakpoints) on any expression and step your code through execution. It has a watch capability that allows you to monitor the contents of your variables, though it is missing the facility to take an action when a variable reaches a certain condition. Though, you can do the latter using a conditional breakpoint, so it's no great loss. Throw an event stack into the mix, so you can see where a particular script is being called from, a profiler of your code, and a monitor for global and environment variables and you are looking at a pretty complete debugging facility (see Figure 5).
|Figure 5. Debugging with EnginSite: There's nothing lacking in the debugging facility. |
Visual Studio developers, again, will be at home with the debugging, as the keystrokes that it uses, as well as the onscreen icons for currently executing line and breakpoints, are familiar. The message window at the bottom left shows you the current problem as well. This makes scripting with PHP a whole lot easier to develop, debug, and support.
EnginSite is a pretty good IDE; not great, perhaps, but it's an excellent value for the money, when you consider the price of products such as Zend Studio ($299) and Macromedia Dreamweaver ($399). It's the real deal, with project management, code generation through integrated snippets, integration with source control (CVS), extensibility, and full help files.
EnginSite PHP is a very valuable tool for beginning PHP developers. Even for a more seasoned PHP user it has a lot of value, and if you're in the market for solid tool and cost is an issue, download the evaluation and give it a spin.