Open Source

NuSphere's PHPEd Advantage: The perfect tool for Web development

Web development is becoming increasingly more difficult. Fortunately, there is NuSphere's PHPEd Advantage to help you along. Vincent Danen takes a look at this amazing tool and shows you how it can help to define your company's Web presence.

Arguably, the biggest benefit of using Linux is that it is based on open source technology. This means that almost everything you need is available, free of charge, for you to use in any way you see fit. For a Web administrator or Web developer, this is a rather ideal situation to be in. With tools like Apache, MySQL, PHP, Perl, and a plethora of others, there is almost nothing Linux lacks in terms of Web site development, administration, and maintenance.

The only negative, in terms of open source Web development, is finding a way to pull all of these great tools together into one user-friendly environment. Enter NuSphere's PHPEd Advantage. This pre-packaged product is worth every penny it subtracts from your precious IT budget when you consider the Web presence it can help you create for your company. It’s not just no-hassle; it’s a gold mine of Web development tools laid out at your fingertips. In this Daily Drill Down, I’ll show you what PHPEd Advantage offers and why you need it in your Web-development arsenal.

What's in the box?
NuSphere describes the PHPEd Advantage as the NuSphere Technology Platform—a definition based on the Internet-based technology that the product is centered on. The package’s goal is to provide any Web administrator or developer with the tools necessary to maintain a full-blown Web presence, and the information to do it properly and efficiently.

The term “full-blown” is key. Setting up a basic Web site for a company is a simple matter of slapping together bits of HTML (and maybe some nifty JavaScript). But when your company’s demands are a bit loftier, the project’s difficulty rises exponentially. Implementing database-driven Web sites or adding Perl scripting or PHP-based applications can be a seemingly insurmountable task. This is where the PHPEd package comes in to save the day.

PHPEd Advantage comes with many familiar open source components: It uses Apache, MySQL, PHP, and Perl for the core Web serving application. The current version of PHPEd Advantage is 3.0, and was released just recently.

The Advantage product also comes with a subscription service, so you will receive updates every quarter for a full year. By purchasing it now, you can rest assured that as the open source technologies progress, they will become available in a quarterly update that comes with your paid subscription.

NuSphere PHPEd Advantage can be used on multiple operating systems as well. It comes with support for Linux (Red Hat 6.2 or higher), Windows 95/98/NT/2000/XP, and Sun Solaris 2.6, 2.7, and 2.8 for SPARC. All of this (along with source code, NuSphere’s special version of MySQL with GEMINI support, and many other popular open source tools) comes on one CD that retails for $495USD. That price includes thirty days of installation support and a full year of technical support.

What's so special about PHPEd?
In comparison to IDEs for other languages such as C or Perl, there are few PHP integrated development environments (IDEs) available. Out of these few IDEs, PHPEd is by far the most robust and feature-rich. Even more exciting is that, with the 3.0 release of PHPEd, native support for Linux was introduced, meaning that you can use PHPEd on both Windows and Linux operating systems.

PHPEd is not restricted to only PHP, however, but can be used as a full Web development IDE. It also provides support for Perl, Python, JavaScript, CSS style sheets, and HTML. It is also more than just an IDE: It contains a built-in Web server with a debugger, a language-sensitive code editor, and a file manager. It also has support for CVS, FTP, and WebDAV for multi-developer operations.

Built-in CVS
One side note: PHPEd is the only IDE for PHP that has built-in CVS support, which is what makes it so appealing to many Linux-based developers who use CVS for project-tracking and corroboration.

PHPEd is the most mature IDE for Web development that I have seen. The code debugger does not require modifications to the code in order for the debugger to become active, unlike some other IDEs, which require certain PHP functions in your application code to contact the debugger. The code debugger automatically determines and highlights syntax and some logic errors, allows you to watch and track variables throughout your code, and provides a listening function that allows you to debug any script from any browser, automatically launching PHPEd to modify it.

PHPEd also provides some very nice MySQL support in that it allows you to easily modify MySQL tables and data from within the program, and it also allows you to execute SQL queries directly for testing purposes. The 3.0 version offers support for the PostgreSQL database server as well, so you can use the same features with PostgreSQL that earlier users only enjoyed with MySQL, allowing the IDE to access both popular open source database servers. Once you connect to your chosen database, you can view it's tables and schemas, user information, and detailed status on the database. This makes working with SQL much simpler than manipulating data or tables using either database's command-line tools.

The Performance Profiler is a new component of the 3.0 version that allows you quickly to see where bottlenecks in your code might exist. This will help you write better code and increase your application's performance. The Profiler will execute, one line at a time, each statement, function, or file in your code. It will then sort the results by location, line number or file, the total amount of time it took the application to execute, the time it took for the first execution, and the number of hits. All in all, the Profiler can make a big difference in your code’s efficiency.

Finally, for deployment capabilities, PHPEd provides built-in WebDAV support, and also includes a built-in FTP client that allows you to transmit and receive files via FTP, all without leaving the PHPEd IDE.

MySQL with GEMINI support
One of the most exciting features unique to NuSphere’s PHPEd is a modified and enhanced version of MySQL that includes GEMINI support. GEMINI is a transaction-safe table handler for MySQL. Basically, this means that it provides additional features to MySQL, such as row-level locking, reliable crash recovery, and robust transaction support. GEMINI is not a part of MySQL, but is developed and maintained entirely by NuSphere, and is only available as a proprietary product from NuSphere. It is also not released under the GPL license, like MySQL, and the source code is not available.

GEMINI provides the full set of ACID (Atomic, Consistent, Independent, and Durable) transaction properties. GEMINI was derived from a successful commercial database, and it uses the same storage kernel technology that is tightly integrated within MySQL itself. It also supports a configurable data cache that will speed up database reads while still permitting table updates. Other nice features of GEMINI tables are their ability to lock tables and their support for transaction commits, rollbacks, and isolation levels.

GEMINI tables are a different type of table from standard MySQL tables, and as such need to be specially referenced in applications. NuSphere indicates that mixing non-GEMINI tables and GEMINI tables detracts from the whole purpose of GEMINI and the ACID transaction properties. Therefore, if you are using NuSphere's MySQL and plan to use GEMINI tables, you should use them exclusively.

Of course, with every good thing, there are some drawbacks. GEMINI is unable to DROP a full database; instead you must drop all of the tables in the database first before you can drop the database itself. It only supports a maximum of 1,012 GEMINI tables, and this limitation is imposed per server, not per database.

Modifying your Perl or PHP scripts to use GEMINI tables is also very straightforward. Where you would normally use:
CREATE TABLE [table_name];

You would instead use:

Basically, you will need to append ``TYPE=GEMINI'' to all SQL queries that use a GEMINI table. The NuSphere MySQL reference manual contains a full section on the benefits, drawbacks, design features, and usage notes for GEMINI tables.

Who benefits from PHPEd?
If you're a beginning Web developer looking to incorporate the power of PHP into your company’s Web site, NuSphere PHPEd Advantage is the perfect product. It provides you with the tools to get started quickly on your company’s Web presence, regardless of your development platform. Installation is a breeze—under Windows it’s point-and-click and under Linux it's an RPM-based installation. The variety of tools available is top-notch. This could be considered an essential product for someone starting out on the path to high-end Web development.

If you've been doing some Web development and already have a good understanding of SQL, PHP, and Perl, PHPEd Advantage may be too big of an investment, considering the investment you’ve already made. If that’s the case, you might want to opt for just PHPEd, which retails for $299, but you won't receive the quarterly update, 30-day installation support, or one-year technical support. However, PHPEd is a natural compliment to any PHP developer's arsenal.

NuSphere has done a fantastic job with PHPEd Advantage, and it is well worth the money, especially considering the extra components.



Vincent Danen works on the Red Hat Security Response Team and lives in Canada. He has been writing about and developing on Linux for over 10 years and is a veteran Mac user.

Editor's Picks