Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


advertisement
 

Review: Take Your PHP Web Pages Pro with the Zend IDE : Page 4

As Zend prepares to release version 4 of its PHP IDE, Zend Studio, we check in to see if this RAD tool is ready to meet the needs of serious enterprises that are building out their Web application infrastructure on the low-cost LAMP platform.


advertisement
Development Assistance: Mixed Bag
One thing sorely missing is a set of New Project wizards where you have boilerplate applications premade for you. It would be nice to have a 'New Data Access Web Site' project or the like where you specify the database and the code to connect to that database is prewritten for you. As it stands, you simply create empty projects and it's up to you to do what you want with them.

One thing that is nice is the inclusion of a large library of code snippets, and there are some great snippets included, in many different categories from database access to security to games. It's a wonderful library, but not perfect; I encountered two problems. First, there is no search. You manually browse through the library, which is very large! Secondly you browse through the library only to find that many of the snippets aren't snippets at all, but in fact references to where you can download the snippet! Worse is that the IDE cannot distinguish these, so you can insert them, but all you end up doing is putting an FTP command into your current code window! It seems to me that the IDE should distinguish between available code and code that must be downloaded.

Code Analysis is a nice feature that gives you another pair of eyes to look over your code, giving you advice on areas where it may not be optimized. Of course its feedback has sometimes to be taken with a grain of salt, as some things that you may think are perfectly OK—such as an assignment within a condition (i.e. while($file=readdir($handle)) )—get reported.

Figure 7. Extra Pair of Eyes: Finding potential security holes in your app with the code analyzer.
An additional annoyance is that it doesn't allow you to acknowledge one line (or a class of issues) and move on. Each and every time you run an analysis, the same issues are returned, whether or not you'd prefer specific items to be suppressed. However, a really welcome thing is that a mini-help is given with suggestions on how to improve your code when the analyzer does find something (see Figure 7). For beginners this is an amazingly useful learning tool.

A final nit with the development environment is in its overall appearance. Compared to really nice IDEs such as WebLogic Workshop 8.1 or Visual Studio.NET, Zend Studio looks a little rough around the edges. Non-standard and unintuitive icons make it less user-friendly than it could be (for example: for many years the 'floppy disk' icon has represented 'save'—in Zend it is a blocky yellow folder with a blurry green arrow pointing at it), and the color scheme is a little gaudy. Developers have to spend many long hours staring at their IDE, and good choices in colors, fonts and icons go a long way to make the experience a little less painful. Zend needs to catch up a little here.

Some examples of the icons are shown in Table 1.

Save



Undo

Preferences (Isn't this a calendar?)

Help


Other Great Features
There are too many great features about this IDE for them to all be covered in this review, but another few notables that should be of interest:
  • CVS Integration. Zend integrates neatly with the CVS source control system, a must for any team development environment. It comes with diff tools that allow you to compare versions of files to see what's been changed.
  • Project Deployment. It has an integrated FTP client that allows you to FTP, SFTP, or FTP over SSh so that you can upload and debug your hard work.
  • Document Generation. PHPDocumentor has been integrated into the IDE to provide easy generation of PHPDocs directly from your development environment.

  • Overall Development
    Development isn't just about coding and debugging. It's also about deployment, monitoring, and profiling. Zend offers the complete package for this, of which the IDE is but one component. Announced earlier this month, Zend Platform gives performance statistics for the server on which your application is running, giving you a great way to stress test and stage your application prior to production and to monitor it afterwards.

    In addition, Zend has tools for encoding (and therefore protecting) your code, code optimizers, and many more, all of which can be integrated at the IDE. Finally, they are working on new testing tools to allow white box testing of your completed applications, which will again integrate neatly with the IDE. Zend, a major contributor to PHP5, is offering the full gamut of what an enterprise needs for PHP. It's a compelling story.

    Zend Studio is a very good IDE that, due to a number of small annoyances, falls a bit short of greatness. Making the database integration more powerful, adding more code generation, and making certain tools such as the code analyzer more user-friendly will make this a product to watch. With more PHP converts who need an easy-to-use, wizard-based IDE emerging each day, this product's evolution is sure to continue. If you are seriously developing in PHP, Zend Studio, despite its drawbacks, is close to a must-have.



    Laurence Moroney is a freelance enterprise architect who specializes in designing and implementing service-oriented applications and environments using .NET, J2EE, or (preferably) both. He has authored books on .NET and Web services security, and more than 30 professional articles. A former Wall Street architect, and security analyst, he also dabbles in journalism, reporting for professional sports. You can find his blog at http://www.philotic.com/blog.
    Comment and Contribute

     

     

     

     

     


    (Maximum characters: 1200). You have 1200 characters left.

     

     

    Sitemap