Eclipse News Desk
Product Review: Zend Studio for Eclipse
The professional version is currently in beta being test run by over 800 users and PHP developers all around the world
By: Peter MacIntyre
Oct. 16, 2007 04:30 PM
In my many years of programming, almost 20 years now, I have used countless Integrated Development Environments (IDEs). I have used them from a simple text editor all the way up to the high end IDEs that Sybase, IBM, and Oracle use. In more recent years I have come to embrace the Open Source movement and more specifically development in web environments. My programming language of choice for web development these days is PHP, so it stands to reason that I would be looking for a decent or great IDE for its development. Like so many other developers I too followed a path of looking for the Pinnacle of IDEs for PHP. I started with basic text editors, then moved into text editors with code colorizations, and then into project based development environments, and finally to a fully robust IDE. The one that I most recently was using was Zend’s Studio Professional and I have been using it for a few years now.
Zend has decided, and I think this is a great idea, to join in with the Eclipse community that was founded in large part by IBM a number of years ago. The values that can be added by joining with the Eclipse community are many and varied. Since Eclipse was primarily established as a Java development environment it has certainly grown in leaps and bounds by way of add-on libraries just to name one popular area. Zend saw that this was a great place to cozy up to and has been developing a professional version of its PDT environment (released earlier this year) for over a year now. The PDT version is its open source free-ware version of an editor IDE that is based on the Eclipse foundation materials.
This article will attempt to introduce you to the Professional version that will be released soon. It is currently in beta being test run by over 800 users and PHP developers all around the world.
First Looks - Overview
The first thing that you will have to do after obtaining the software, naturally, is to install it. Zend has ensured that Studio for Eclipse will work on all major operating systems, and this review will be covering its operation on the Windows platform. The installation process is very straightforward and employs an install wizard approach.
Figure 1 - One of Studio's Installation wizard screens [click on this link for the larger version]
Figure 2 - Studio's default PHP Perspective [click on this link for the larger version]
Take some time to look at Figure 2 to get yourself familiarized with the layout. Those who are seasoned users of Eclipse should not be seeing too many surprises here just the content and the context will be different. There are a few “views” here that are used in the initial perspective that are meant to aid the developer with PHP code development.
The first view to look at is in the top left corner of this figure. This is the PHP Project Explorer. Here you can manage all the files and associations that are related to a single project. The great thing about this view is that you can manage more than one project at a time and therefore draw on code or techniques that you may have used in other projects. One other thing that I like a lot here is the “Link with Editor” toggle on the project view’s toolbar ( ) it allows the developer to connect the editor with any file in the project, so that once the file gains focus in the project explorer it is automatically opened in the code editor window on the left. As I mentioned this is a toggle, so it can be turned on and off at the developer’s discretion.
The Code Editor
Also notice in Figure 2 that the main view in the figure is that of the code editor, briefly mentioned above. This is where you will be doing most of your code development. The Code editor view has many little features that become very valuable over time. This is a tabbed interface, so you can effectively have as many open code files as you like. Some of the valuable features that were alluded to are: code colorization, code folding, and syntax checking. You can see what the code colorization is doing in this figure, the HTML directives are in green, the PHP functions are in blue, PHP variables are in red, and so on. This certainly helps the developer to see if a variable is misnamed or a function misspelled. The next feature that I mentioned is code folding. Notice that to the left of the function definitions and the major HTML directives like <Table> and <Body> there are little plus and minus icons. When clicked they toggle between collapsing or expanding code. This lends itself to temporarily moving code out of view that you do not want to see in order to focus on other sections. This does not delete the code it just “folds” it out of the way for you. Lastly, syntax checking, this is the Studio’s ability to check your code as you write it and make sure that you have complete code “thoughts”. It lets you know when you have mismatched braces, incorrect function calls, misnamed variables, and so on. Also, part of this syntax checking will be preformed within the collection of smaller views at the bottom of this perspective. Another tabbed interface shows a collection of code issues, what type they are (warning or error), and what line in the code they are found in. The tab can also be seen in Figure 2 labelled “Problems”
Those are just a few of the features that Studio for Eclipse has to offer. One of my favourites is that of code completion. This is the editor’s ability to suggest the completion of the code that you are writing. It happens as you type and is quite intuitive. As shown in figure 3, I am typing the beginnings of a MySQL PHP function, but all I have typed so far was “mysql_” the popup box displays with the functions that studio knows about that would complete what has already been typed, and just pressing enter will choose the first item on the list of suggestions and insert it into the editor for you. You can select other offerings from the list with your mouse pointer and double-click on it to choose it for insertion.
Figure 3 - Code Completion in Studio [click on this link for the larger version]
Another big aspect to Zend’s Studio for Eclipse is its full-featured debugger. This is one of the best debuggers that I have seen in a long time. Figure 4 shows a sample program in debug mode in the PHP Debug Perspective. There are many views here that are supporting the debug process. In the middle of the top pane you can track your variables, breakpoints, and parameter stack. To the right of that is a view that holds the outputs of the debugger in both HTML and browser-rendered format. Then showing in the middle pane is the code that is being traversed with the debugger, so you can see the code as it is being executed.
Figure 4 - Debug session in Studio [click on this link for the larger version]
If you can see the mouse-pointer in figure 4 it is pointing to the toolbar items in the debugger that help you navigate through a debugging session. Here you can step into, over, or through (to the cursor) your code as you are looking for the problems in your application. Having the ability to stop you code at certain stages of execution and inspecting values can be very valuable indeed.
The plethora of options that control how the Studio works is huge! If you select the preferences option under the window menu you will be presented with the dialog that appears in figure 5. Here you can change the default behaviour of almost every aspect of this IDE. From the editor to the SQL connections to the Internet settings it’s all here. Specifically shown in figure 5 are the options that you have for altering the syntax colorization for the PHP code. Since there are so many options for you to choose from be sure to only change one or two features at a time so that you can see what the alteration really does, and so that you don’t have so many changes to roll back that you forget which option enacted the change that you really wanted.
Dan Chase commented on 24 Oct 2007
Peter, thanks for the overview. As I too have been a long time user of Zend Studio, and have recently switched to using PDT I was hoping for some more comparison between the three products. The one item in your review that I was reminded of that was Zend-specific was the Code Snippets. Have you done a feature-to-feature comparison of them? I was thinking of writing an article for php|a with that focus, but I think you've beat me to the punch with the core information! I've download Neon and have worked with it some over the past week, but found one inconvenience that is holding me back. All my current projects are in PDT and I have been using the Subclipse plug-in and I find that Neon uses Subversive. I have to create *new* repository connections to use it with the same checked-out code. A minor issue, but from my reading of Subclipse vs. Subversion comparisons, I'm leaning toward staying with Subclipse. On a related note, have you experimented with adding other Eclipse plug-ins with Neon?
Thanks for the article, and any feedback you can provide would be great! Maybe content for a follow-up article...
Endzoner commented on 16 Oct 2007
Great review Thanks peter!!
Dan Chase wrote: Peter, thanks for the overview. As I too have been a long time user of Zend Studio, and have recently switched to using PDT I was hoping for some more comparison between the three products. The one item in your review that I was reminded of that was Zend-specific was the Code Snippets. Have you done a feature-to-feature comparison of them? I was thinking of writing an article for php|a with that focus, but I think you've beat me to the punch with the core information! I've download Neon and have worked with it some over the past week, but found one inconvenience that is holding me back. All my current projects are in PDT and I have been using the Subclipse plug-in and I find that Neon uses Subversive. I have to create *new* repository connections to use it with the same checked-out code. A minor issue, but from my reading of Subclipse vs. Subversion comparisons, I'm leaning toward stayin...
Registration Opens for @LMacVittie Session | @DevOpsSUMMIT @F5Networks #DevOps #Docker #Containers #DataCenter
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and sy...
High Availability in Cloud with @LeeAtchison | @CloudEXPO @NewRelic #Cloud #CIO #Serverless #DevOps #APM #DigitalTransformation
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. “Fly two mistakes ...
Your Cloud Career with @Dicedotcom | @CloudEXPO #IoT #IIoT #DevOps #APM #SmartCities #Serverless #DigitalTransformation
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand usin...
Registration Opens for @OlgCh Kubernetes Session | @DevOpsSUMMIT #CloudNative #DevOps #Serverless #Docker #Kubernetes
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portabil...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
Scaling Massive Enterprise Content Stores | @CloudEXPO @Alfresco #ECM #BPM #IoT #BigData #DigitalTransformation
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder an...
View Additional SYS-CON Feeds