CLICK HERE TO BUY IT TODAY! OR GET IT FREE VIA TRIALPAY  

PHP Maker 8
by e.World Technology Ltd

Review

Introduction

PHP Maker is a long established code generator now in it’s 8th incarnation. When I was first introduced to it, it cost a mere $19 and despite a few limitations it was excellent value. It has undergone a lot of development in the intervening years and now costs $159 – is it worth it? Well a lot of people on the web seem quite enthused by it, so let’s see what all the fuss is about!

Installation

There are a list of pre-requisites on the publishers website, but unless you have a very old version of Windows on an old PC then chances are you will have everything you need already installed. It installed without issue and takes around 23mb of disk space. Unfortunately there is no uninstall icon so you would need to go through the control panel – but not a major issue.

Interface

Like many code generators, the first thing it presents you with after loading is a database connection screen. The first thing you may notice is that whilst many PHP code generators only work with a single database (usually MySQL) this one gives you the choice of MySQL, PostgreSQL, Microsoft Access and SQL Server. In this test I will be using the Sakila demo database for MySQL.

PHP Maker Connection Screen

PHP Maker Connection Screen

A nice feature it provides is URL connection – if your database is on a live web server that does not allow remote connections and you don’t have a local copy, you can upload a web script to your server and connect via that URL to extract the database schema.

One strange option is the SQL identifier quote character – surely if you are using MySQL it should default to a back-quote as this is standard – I can see some newbies getting confused by this. Hardly a problem though.

PHP Maker Structure Treeview

PHP Maker Structure Treeview

Once it’s finished reading the structure of your database it presents you with a familiar treeview of tables & views/fields with checkboxes to remove tables/views you don’t want to include. Since this is a trial and not a limited “free” version, there is no limit to the number of tables.

Click on a Table or a Field to see relevant options. The options are quite extensive and it may take a new user some time to learn them all to get the most out of the program, however you can put together a basic web application very quickly/easily and improve it as you learn about more of it’s features.

My first disappointment (which to be fair equally applies to all the other code generators I’ve reviewed so far) is that despite having Foreign Keys set up – the program does not automatically specify lookup fields. Not a major issue if you only have 2 or 3 tables with a dozen fields in each, but could become time consuming for larger applications. Not insurmountable but would have been nice if it filled them in automatically.

Also, If you want a date field to have a pop-up date component you need to tick a box in the Edit Tag box for each date field – surely most people would want a pop-up component by default?

However, unlike the other code generators I’ve reviewed so far, it does correctly handle ENUM fields by setting it as a radio button with the valid options already in place.

There are lots of properties which can be modified to tweak your application to perfection – Number of Records Per Page, Default Language, Upload Folder location, valid file types, multiple or single record delete, etc etc, giving maximum flexibility.

Like many PHP code generators it allows the user of the classic MySQL driver or MySQLi but doesn’t have an option for PDO – which offers better security. I would definitely like to see this option in the next version.

It allows data to be exported in a number of popular formats such as Word, Excel, XML, PDF etc, and allows creation of basic reports and even lets you create views using a built-in Visual SQL Editor.

PHP Maker SQL Editor

PHP Maker SQL Editor

One of the major features that sets PHP Maker apart from it’s competitors is the option to have Master – Detail forms. When you select a record in the master grid, the detail grid appears beneath it automatically. This can be used for example in a scenario where you click on a client in a list and it shows their invoices in the grid below.

Security options allow the usual hard coded or authentication table options. You can specify an integer field which gives a “user level” for each user level you can specify which actions can be performed in which screens via tickboxes. It doesn’t seem to allow MD5 or SHA1 encryption of your passwords though.

Like many tested code generators, PHP Maker did not detect my AppServ or Xampp stack and therefore I had to manually select where to create the application. Code Generation took around 2 minutes, and warned me that the tables/views without primary keys would be list only.

Generated Applications

PHP Maker Grid

PHP Maker Grid

The web applications have a fairly standard layout – list of tables down the left, a table grid of data with a search box above it and View/Edit/Copy/Delete buttons in the last 4 columns. Clicking on a column header sorts the data by that field (though multi-field sorts do not appear to be possible).

In the Generator you can select which fields should appear for search, and which ones should be compared against a general search. There doesn’t appear to be a way to specify multiple criteria for a single field, e.g. in the Sakila database you could search for a film with rating G or PG13 but I couldn’t see a way to search for a film with either of those ratings.

PHP Maker Edit Form

PHP Maker Edit Form

When you hit the edit button it brings up a new screen with the edit form. It’s a fairly standard data entry form but looks pleasing enough. Strangely I ticked the box to have my date field come up with a pop-up calendar, and the “DHTML Editor” box for the textarea but they aren’t appearing. It’s beyond the scope of this review to investigate the issue further, perhaps I’ve probably just done something silly or you only get these options in the bought version (though it didn’t warn me) – so if you have problems with it just contact their tech support to clarify.

Code / Application Structure

The main folder has several PHP files for each table/view – one for delete, one for view, one for add, one for edit and the main page. There are sub folders containing css, images, javascript, language (in the form of XML files), and text. There are also several Configuration files and files containing core functionality.

The code is well written and reasonably object oriented with decent code comments. However like code generated by most code generators it may be a little bit complex for a newbie to hand code any changes (should they want to).

One concern I do have is that there does not appear to be a clear seperation between presentation and logic – e.g. HTML templates which a web designer can modify to get the look+feel that they want, without breaking any of the PHP code. I quickly checked their forum to see if I’d missed something obvious, but when asked about trying to shoehorn a PHPMaker Web Application into an existing site’s look+feel their official response was:

“PHPMaker does not and will not use template engines such as Smarty.”

and the solution was to

“Customize the template.php, remove the HTML code for the header/footer, keep the JavaScripts and stylesheets, then try to put the page in your “placeholder”. Alternatively, do it the other way around, customize the template.php (which is actually also a “placeholder”), put your HTML into the template.php. Also read “Customizing Template” in the help file.”

I take the point that template engines such as Smarty do add extra load on the server (whether your site is busy enough for that to become an issue is another question) but I can see this being a show-stopper for some people. That said, there is no “one-size-fits-all” and there are many who will applaud a code generator that does not use Smarty!

Indeed I couldn’t find any 3rd party components in it’s arsenal, though I did read that the registered version comes with access to YUI components.

Summary

I installed PHP Maker 8 with high expectations due to reading much praise about the product on the Internet, and the relatively high price of $159. It is inevitable therefore that pet hates such as lack of PDO support, no lookup detection based on Foreign Keys, and worst of all no separation between code and visual layer would disappoint me. I didn’t come away with the “wow” factor, however putting things into perspective this is a very good code generator – perhaps not “The Best” as they state on their website, but certainly very good!

For one thing whilst many PHP code generators only support MySQL, this one additionally supports PostgreSQL, Access and SQL Server. They also have versions for ASP.Net and Classic ASP (does anyone still use that?) so any learning curve on this one could be useful if you need to buy the ASP.Net version for example in the future for another project.

The code is very maintainable if you are a PHP developer at a reasonable level, and there are a lot of options built in which may mean you never need to tinker with the code unless your requirements are quite advanced.

The Master/Detail feature works very well and if it is an important feature to you then it may well be the reason you buy this application since few others do it so well / at all.

Reviewed September 2011

PHP Maker Publisher's Website


If you have used this product and have any comments about this review (perhaps we missed a killer feature, or missed some major hole that only manifests itself after prolonged use) then please comment below.

comments powered by Disqus