When I first heard of Zend Studio, I thought, what's the point in that? There
are plenty of (free) PHP IDEs available. What's so special about this one? However,
when I got down to looking at it properly, I found that Zend was indeed very different
to others.
For one thing, it's not really just one package, it's two, aptly named, Zend
Studio Client and Zend Studio Server. The client part is an excellent, easy-to-use
IDE, with integrated debugger, which really helps speed up development times,
whereas the server has even more surprises waiting for you: as well as the debug
server which integrates with the IDE so you can remotely debug your PHP applications,
it includes the Zend Server Centre which will help you get the most out of your
PHP configuration. In other words, it's a web-based front end to your php.ini
file. The server part of the pack includes the Zend Optimizer which inspects
and assists in speeding up your code. Finally, (and pretty much to
be expected), it includes a copy of Apache and PHP, which can both be installed
if not already present. If they ARE already there, then Studio will integrate
with them seamlessly.
Installing Zend Studio
Ok, ok, this might sound really patronising, but this part needs serious consideration. Everyone knows how to install software but it's really worth thinking about before you jump right in. Like
any new bit of software, it took me a couple of attempts to get it just how
I wanted. There are a couple of ways that you can have your system set up:
1. You can have the whole caboodle installed on your PC, including a localcopy of PHP and web server (if you don't already have one, Zend gives youthe option to install Apache). This situation is ideal for lone programmers who don't need
to share work loads.
2. Or, you can install the client portion on your PC and the server portion
on a server. This is more suited for companies or people who work in teams on
their PHP projects.
There are both *nix versions and Windows version of the suite, so you can use
either type of OS for the server and the client.
Zend Information Centre
If (unlike me) you are the type of person who treats manuals with contempt
and dives straight into games or software without so much as an acknowledgement
of documentation, then just for once try to break out of this habit and get
to know the Information Centre that comes with Studio. It contains information
about all sections of the Studio, with an overview, details of useful techniques
for use within the IDE as well as the Server Centre (which I'll come onto in
a bit). Ok, so it's a glorified .chm (or man if you're more used to *nix systems),
but an incredibly useful one at that.
Zend Server Centre
Ever wondered what all those settings in your php.ini file meant? Well take
a look at the Zend Server Center and you'll see exactly what they are. Not only
does this package explain what each little line does, it also allows you to
configure your PHP settings online, which means no more messing around with
notepad (or your local equivalent).
Zend Development Environment (ZDE)
The first thing that I thought of when I opened ZDE for the first time is that
it's a lot like Visual C++ from a little-known software company from Seattle.
If you've ever used C++, then you'll be prefectly at home with the layout and
probably the package in general. It's not as daunting as it looks.
File Management
One of the most useful tasks that any development software can perform (although
for some reason, some don't) is the organisation of files into projects, and
ZDE does it very nicely indeed. It's very easy to create projects and even easier
to add files to them. One of the best features that I discovered was that you
can add directories on FTP servers to projects and open and save the files as
if they were on a local drive. Incredibly useful when you aren't on the same
network and can't use Samba or Windows networking to map a drive from your server.
When adding files to the project, whether from a local drive or an FTP server,
ZDE searches the added files for required tags in the lines of code. If one
is found, a box is displayed with details of the line number and file path and
name of the file doing the calling as well as the include statement of the file
being called. To add the include file to the current project is as easy as double
clicking on the right line. Could it be any simpler?
Whilst on the subject of file management, Studio has built in cvs (if you don't
know what that is, think open source version of SourceSafe (again by that small
software company in Seattle)). With this, you can perform all the commands that
you would probably want (well, maybe). Very useful when developing SourceForge
projects (the only major use of cvs that I could think of).
Code Completion
I know that a lot of people say that you're never a true coder if you use anything
that has code completion, but it is stil incredibly useful for someone that
spends all their time developing, and Zend acomplishes this task very well.
When you start typing a word in, if the word is (for example) a built in function,
then it gives that name, the number of
parameters needed and also the variable type of those parameters. The same sort
of thing happens with PHP's predefined variables. However, it doesn't just stop
at the predefined functions and variables. No, if you have any functions in
either the same script or and included file, then Studio will recognise these
and process them the same way it does built in ones. It will also pick out user-defined
variables and use a pop-up box if
it recognises a variable and then you can either click on the box or just hit
enter. ZDE also completes HTML, as do most IDEs, but not only that, it will
also recognise if (for some reason) you use the ASP "<% %>"
tags.
Classes
One of the features of PHP that not everyone knows about, and probably even
less use, is its Object Orientation features. And with the forthcoming v5 of
PHP (which, by the way, this version of Zend Studio supports) these functions
will become ever more popular. ZDE makes it very easier to see what's going
on in your (or other people's) classes, with
its in-built Project and File Inspectors. The Project Inspector allows the user
to view the classes and members that have been declared in every file in your
project.
Each class and member is displayed using collapsible trees, which makes it very
easy to navigate the said classes. To make it even easier to read, icons are
displayed next to each item to indicate whether the item is a class, member
variable or member function. The File Inspector is very similar, except that
it only searches through the active file. So, when you change the file using
the tabs underneath the main coding screen, the file inspector will become updated
accordingly. This inspector uses the same tree formation to display the classes,
but also displayes included files.
The code completion also applies to classes and methods within classes.
Debugging and Testing
This has to be the most useful tool that ZDE provides: the ability to run your
code and view the output through a browser. It is an incredibly simple task
to perform. All you need do is click one button and ZDE will run the entire
script, alerting you to any errors and then outputting the results to the output
window, which can then be made to run the resulting HTML in a browser.
As well as running the entire script through from start to finish, you can
also set breakpoints, which are points in the script where you want the debugger
to stop and wait for you to continue. This makes debugging much simpler since
it allows you to watch the variables as they change and see the HTML output
develop.
When debugging, you can either perform it on the PC you use to write the code
(using the copy of PHP and Apache that Studio will install for you) or you can
configure it to use a different computer altogether (as long as that computer
has Zend Server installed on it).
Further Features
Smart bracket matching: This may sound silly, but how many times have you searched
long and hard for the cause of that error and it turns out that you forgot to
close a bracket?
Automatic indenting: Makes your code easier to read and therefore debug. One
of my favourite features.
Summary
If you like WYSIWYG IDEs such as Dreamweaver, then Zend Studio is not for you.
Also, the system requirements of ZDE recommends at least 192MB of RAM (although
most new computers come with that and more anyway). I found it a little memory-hungry
and it sometimes took a little time to load up, so it's not ideal when you want
to "quickly fix that one line".
Apart from that, I like that it didn't "bloat" my code like DW has
a habit of doing and I loved the code completion, especially when using my own
functions.
There are two versions of the Studio: you can either buy the full version for
$195 or you can download the personal edition, which means that you have full
functionality for 21 days and then you lose some of the advanced functions such
as the cvs, ftp and remote debugging.
I have now stopped using Dreamweaver when coding in PHP. The functions that
is provides may be all very well if you are relatviely new to PHP, but it doesn't
come close to the functionality of Zend Studio.