Soft Galaxy’s PHP Code Generator is one of the cheapest available at only $48 but with the last update in 2006 does it have the features to compete with more recently updated code generators costing twice the price?
Installation was simple enough, it created a new group containing the application, an uninstall link, the help file and an ordering page. It took less than 2mb of disk space.
The program does look quite dated – which isn’t surprising as it says Copyright 2004, and the PAD file is dated 2006. A lot has changed in the past 5 years, however cosmetics aside, it doesn’t necessarily mean it is a bad program.
When you load up the program your are presented with the database connection screen. Since it only supports MySQL, the prompts are fairly standard – UserName, Password, Port etc. Once entered, hit Connect, select the DB from the list and hit Next to move on to the next screen.
It helpfully asks if you wish to save the connection and allows you to give it a name so that you don’t have to fill in the details again if you wish to create a new project for the same database.
Next it prompts you to select the tables you wish to include in your project – here comes the snag though, in the demo version you can only add the 1st table in the list! I understand the need to restrict demo versions to prevent people who only need the program for 1 project to simply use the free version without purchasing, but restricting it to one table, and even then you can’t select which table it has to be the first in the list is a restriction too far.
In the Sakila Database the main table is the Film table and has a variety of fields to see how it handles date fields, lookups, sets etc, but unfortunately we are stuck with using the uninspiring actor table to continue evaluation of the program.
Next we can select which fields of the table we want to include by using checkboxes in a treeview. Guess what, not only are you restricted to 1 table, but you can only include 4 columns!
Fortunately the Actor table only contains 4 fields anyway, so I hit the Next button and it gives checkbox options for “Allow adding records”, “Allow editing records”, “Allow deleting records”, “Allow viewing records”, “Allow searching records”, “Set Server-Side Validation”, and “Create Lookup Columns”. Unfortunately, upon ticking “Create Lookup Columns” it once again informs us that this functionality is only available in the Full version.
The help button does confirm though that when you assign a Lookup column it will assign a dropdown list to the field, and display the lookup value in a grid (as you would expect). There doesn’t appear to be an option for an autocomplete field for example if there were too many records in the lookup table to be displayed in a dropdown list.
The next step is to set validation – for each field you can allow/disallow Nulls, check for specific characters, and set a minimum/maximum value – though strangely it doesn’t seem to give an option to restrict length of the field. It allows you to select an alphabetical range so I set A to E but when I entered a value into the built application beginning with a Z it accepted it without question.
Next you can choose whether you wish to authenticate users or not. There is only an option to provide a single hard-coded username and password, there is no option to authenticate users against a table.
In the final step you select style – choose from Professional, Simple and Colourful templates which can apparently be customised – but only in the Full version.
Now select where you want to create your script and hit the Generate button. There is no option to automatically launch the browser to try out your App.
The page for our table has a simple search facility at the top of the screen where you can enter a value that is matched against any field on the grid.
Underneath there is a grid with Edit and Delete link columns at the right of the grid.
At the bottom there is a data entry form for adding a new record. If you edit a record from the grid then it appears in a new screen.
The data grid can be ordered by a single field by clicking on the column header Up or Down buttons. It has Next/Previous page buttons, but no Last or First so when in this case there are 21 pages you would either need to order the data so that the page you want is first, or keep hitting next 21 times.
There seems to be a bit of a bug however- there are 201 records in the table and it correctly works out that at 10 records per page that is 21 pages, however once you get to page 20 the “next” link greys out and there is no way to see the final page (other than cheat and change the page_id on the URL – keeping in mind it is zero based so for example page 1 is page_id=0) which confirms the existence of the page.
Another strange thing is that most code generators recognise an AutoIncrement field should be read only, yet this one allows you to edit them – it can be useful on occasion, but it can also cause havoc if changed accidentally.
There appear to be no widgets, such as popup calendars for date fields, radio buttons or the like.
As you might expect from a program of it’s age, the generated PHP isn’t object oriented and it uses the classic MySQL commands instead of the more modern, efficient and importantly secure PDO. There is also no separation between presentation and logic (i.e. HTML is mixed in with PHP making it hard for a designer to make changes without breaking the PHP).
However, the code is fairly easy to follow, and I’d imagine should still work with PHP4 if for some reason you are still stuck in that environment.
There don’t appear to be any 3rd party components used.
This program is cheap, very easy to use and provides usable results if all you need is a very basic system to allow you or your users to maintain data in a MySQL database.
If you’re looking for modern conveniences though such as Autocomplete boxes, Date Pickers, Ajax updates and so on though then you will need to look elsewhere.
In other words it offers good value for money, provided you can live with it’s limitations.
Reviewed September 2011
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