I have been looking for a real PHP IDE (Integrated Development Environment). Recently, I ran across Nusphere’s PHPEd, Version 4.5.
Workspaces, Projects and Accounts
Coming from a PHP background, I am used to scripting from the beginning. And since PHP argues that it’s made for rapid development, in reality the code you produce is very rapid and unorganized as well. While of course rapid development and organization/quality are not mutually exclusive, reality is different. You can see an example of what I mean, when you try to run scripts written for PHP3 with the register_globals option turned off.
Over the years, I began to organize my projects in a different manner. Primarily this was due to development for clients has to follow a certain standard, code-wise (make ’em scale), code documentation and organization in general.
Organization is a key-feature where PHPEd flexes its muscles. You organize workspaces, ideal for the roadwarrior, and then projects.
Workspaces can be useful if you freelance and encounter different environments often. When I work at a client’s office, they often provide a local development environment which you can plug into. When you are at home or at your office, it might be a very different game. So instead of opening a text editor, ftp program, putty or whatever else you need for programming, PHPEd’s saves the day. All it requires is that you set it up in the beginning.
So whenever the workspace is ready, then you setup projects. Inside the project screen you have the ability to add accounts to your systems (servers). And the accounts can be virtually anything. FTP, with or without SSL, secure shell, webdav – you name it. Together with the project setup, you can also add Subversion or CVS to integrate the source code and version control.
Another very useful feature of PHPEd – especially useful for collaborating with others – is the Smart-Sync option. When using the Smart-Sync option, Nusphere’s editor will try to determine if the file you are about to upload or download is newer than the version on the server. However, it does not sync in terms of how Subversion or CVS syncs or merges a file. It will just try to determine if you are up to date or not.
Even though this is an advantage of PHPEd, I found it sometimes increasingly difficult to work with this. While there is an override to upload files to the server, there is no option to override Smart-Download. I am not sure if my setup was flawed, but I believe since I am in the same timezone as my development server, it should download a file which I uploaded myself a day ago. Yet PHPEd prompted that my file was newer than the uploaded one and refused to override with the server copy.
Another incident happened when a co-worker and I both worked on the same file on the server. Smart-sync would not download it and the file was indeed “newer” than my version of the file. Yet it was refused the download.
The workaround for this issue is to delete the file in question, and to sync the current folder. And then you are up to date – hopefully. Or you use the build in Explorer to download the files in question.
For a future version it would be nice to implement a “force-download” option in one of the next releases.
PHPEd also comes packaged with a listener for DBG. Since I currently have no access to this on a server, I could not try the feature, but it can be worth-while. Using breakpoints saves you a lot of echo’s and var_dump()’s in order to keep track of your variables inside the application. If you are familiar with programming from C++ or Java, this is a must-have.
Other notable features
Along with project management, debugging, syncing and so on, PHPEd has a really comprehensive feature list. Most notable, a very well working database client, function references, soap wizards, and form wizards, and a lot more.
For example, the Sourcecode highlighting of PHPEd is another mandatory feature in any editor today and works really well. Support for highlighting comes for PHP (up to 5), Perl, HTML, CSS, SQL and Python.
A nice to have is that PHPEd saves your entire workspace, when you close the application and reopen it. That is including files you had opened when you closed the application.
Running PHPEd makes a lot of the work easier. Once you setup the workspace and project, you are ready to go.
The only glitches about running PHPEd that I noticed with the old 4.0 version were the auto completion of variables, classes and function names. Once resolved, the information is indeed valuable, but with a larger project this can make your program hang. When I moved to 4.5, those issues were resolved for me.
Another thing is that whenever I close PHPEd, it almost sweeps the entire system into the abyss. I have no idea where this comes from, but I had to kill the process (especially the live debugger) very often.
Last but not least on my list of improvements is the Smart-Sync option. While I see that the option is valuable in a collaboration environment it also provides space for practical improvement.
The problem I had is that a lot of times, a colleague worked on files and even though we both knew that an updated version is on the server, PhpEd refused to “smart-sync” it. The work around would be to download the folder in question using the build in file explorer, which is of course “OK” – but a hassle.
The bottom line
One of the bigger issues I found with this software is the pricing model. While I understand very well that selling software is a business, the pricing model of this IDE is tough to digest.
There are 2 versions of PHPEd:
- $299 – gets you basic support plus simple program updates for service and small feature packs
- $495 – gets you upgrades plus priority support
Shall I buy, or shall I not buy? – Well, that’s up to you to decide. All you need to do is measure up the hours you spend running around with four programs (edit, save, upload, download) and in my opinion the money spent is well worth the time savings.
Alternatives to Nusphere’s PHPEd would be the free IDE Eclipse or Maguma Workbench.
$299-$495 (other packages available)
IDE Eclipse / Maguma Workbench.
It’s really integrated which can save major time which equates to money in the long-run.
License vs. Pricing, Smart-Sync has flaws.
Pricy but well integrated software, which will speed up your development.