I have been using PHPMaker since version 4 in year of 2007. I could make so many dynamic web applications that suit with my needs. When I was writing this article, its version was 9.1 and the year of that time was 2012, and I have been using it! What does it mean? Well, can you imagine the changes from version 4 to 9 and why have I been still using it until now? Because I have been following all the changes that implemented in PHPMaker, and the developers of PHPMaker have included so many features which will make your web applications more powerful and flexible. Yes, it means that PHPMaker has evolved become more powerful and flexible, too. Each new version included the new features that you never thought before! Most of them were added based on the feature request in the discussion forum.
As you can see from the link I mentioned above, too many reasons why then I love PHPMaker. Two short words that describe about PHPMaker are: Powerful and Flexible. Powerful to generate your web applications which will have the hundreds or even thousands page files and thousands or even million lines of code only within a few minutes. Powerful to generate your web application which will contain a hundred tables and views. Powerful to synchronize the changes of your database structure with the previous state by single one click! Flexible to define your own business logic through the Server Events and Client Scripts that provided by PHPMaker. Flexible to change the look and view of the generated standard of PHPMaker. Flexible to customize the template that suit with your needs. Flexible to extend and enhance the ability of the generated web application via the available and ready-to-use Extensions.
In more detail, here is my so many reasons, reviews, and experiences in using PHPMaker since year of 2007 until now, 2013.
Reason 1: Clean, Simple, Good, and Consistent User Interface
The Graphical User Interface (GUI) of PHPMaker is very simple, good, and clean. All of its features have been included in one main window only. Hence, it is so simple yet so good and consistent if I want to switch from one feature to another without having too much click between one window and the others.
Reason 2: Easy to Learn and Use
Even you are using PHPMaker for the very first time, you will never get difficulty to learn and use it. It's because of PHPMaker is designed for high flexibility, numerous options enable you to generate PHP applications that best suits your needs. Even you can also learn the basic template by generating the blank page and also customizing it if you want to add your own code.
Reason 3: Fast in Generating Code
You can generate your web application which will have hundreds/thousands page files within a few minutes only! Can you imagine if you develop your web applications by writing the code from the scratch? Even you are using PHP Framework, you are still having to write your own code up to hundred/thousand lines. How long will you use to develop your web application? You will see the differences how its generating process is always be improved in the latest version.
Reason 4: Project-based File
You can save all of your setting, your own business logic/process, your changes only in one file which has extension as .pmp (PHPMaker Project) file. In future, if you want to modify it, you simply load this .pmp file using PHPMaker. This file even supports for the latest version of PHPMaker. This is really useful if you are developing some web applications at the same time. No need to depends on the additional task from other people. In other words, you can develop as many web applications in the same period of time easily and quickly.
Reason 5: Easy to Customize Template
You can create your web application using the separate template file. Therefore, you can customize the template with your needs easily. The template is very easy and flexible to customize. You can also learn from its Help file. This is useful and often be happened since all web applications will not be the same between one and the others.
Reason 6: Easy to Add New Business Logic/Process
You can add your own business process either from Server Events or Client Scripts. PHPMaker has provided the most wanted event in a web application, such as: when a record is being inserted to database, after the record has been inserted to database, when the records are displaying in the list pages, after users are successfully logged in, etc. This is very useful if you are developing so many web applications in the same certain period. Also, it will help you to maintain each project in the future. Let PHPMaker handles it for you!
Reason 7: Less Memory Consuming
Try it, then you will see what I mean. Even if you close the project file, it will clean up the memory that used by it. It also uses the cache technique while generating your script files. In addition using less memory, that is also one of so many secrets why it is very fast in generating your web application.
Reason 8: Database Synchronization
Can you imagine if you have hundreds tables and there are too many changes you have done and you have to synchronize that changes with your existing project file manually? Well, PHPMaker can do it precisely for you within only a few seconds! This will make your generated web application will always be integrity with the latest changes of your database structure. You can even synchronize only the certain table(s) from the hundred tables in your database by using PHPMaker.
Reason 9: Including the Help File
If you want to learn it in more detail and seriously, the Help file that included within PHPMaker installation will help you to guide what you should do. Even the things you have not asked it yet, the Help file has provided you the answer for it! You can learn the great features from the related tutorial in the help file. It also includes the technical things that you should know in order to optimize your PHPMaker.
Reason 10: Including Most Wanted Features for Web Application
User Account Registration, Login, Logout, Forgot Password, Change Password, CRUD, Search (Basic/Advanced), Server Side Validation, Client Side Validation, Master/Detail, Pagination, Sorting, Auto fill, Audit Trail, Email System, Multi Languages, Export to Media (Printer Friendly, Export to Excel, Export to Word, Export to HTML, Export to CSV, Export to XML, Send to Email), Grid-Add, Grid-Edit, Inline-Add, Inline-Edit, Multiple Delete, Multiple Update, Advanced Security, User Levels (User Groups), User Level Permissions, Roles Based on Access Level, Horizontal/Vertical Menus, CSS, System Messages, Time Zones, Regional Settings, Sessions Handling, Anti-SQL Injection, Anti XSS, and many others.
Reason 11: All scripts are linked up properly
You don't have to link each script file to another. PHPMaker has linked up all the generated script files for you, especially for Security, User Levels, User Level Permissions features. Imagine if you have to develop hundred or thousand pages in a short time. This is another reason why PHPMaker can save lots of your time to develop many web applications. And the most important things, all of the functionals are working great.
Reason 12: Copy Table Settings
Most of the time you will create the similar Views or Custom Views based on the existing tables in your database. By using this feature, now you can speed up your development process. You don't have to adjust the table settings from the beginning again. PHPMaker can do it for you within only a few seconds!
Reason 13: Copy Field Settings
Most of the time you will adjust the Field setting one by one based on the other existing fields from the similar Tables/Views/Custom Views. By using this feature, you can speed up your development process. You don't have to adjust the Field settings from the beginning again. PHPMaker can do it for you within only a few seconds!
Reason 14: Custom Template is now supported
By default, fields are presented in tabular form. For example, one field per row in Add/Edit/Search/View page, or one record per row in List/Delete page. Custom Templates enable you to re-arrange the fields in your own way. This is the latest great feature that added in version 9 to answer the requests from PHPMaker's users which want the flexibility in the generated web application pages.
Reason 15: The generated process can be adjusted easily
There is no PHP code generator can do this the best for you, except by PHPMaker! You will get surprised when you know that you can control all the generated process only from one .xml file! Yes, this is another the flexibility features that I love so much from PHPMaker. For example, you can include your own additional files/folders to your generated web application. You can also adjust the certain files for the certain template. All you have to do is by defining them from that .xml file in the template.
Reason 16: Dynamic database setting either on Localhost or Production Server
Generally, when you are developing a web application, you can do it on your local computer (localhost). When everything is okay on localhost, then you have to upload all the generated files to the production server, afterwards, you have to adjust the database settings for that production server. Believe me, this matter is looks so simple, yet so annoying for you! PHPMaker is able to handle this for you easily. You don't have to adjust the database setting each time you have uploaded all the generated web application files to the production server.
Reason 17: Using OOP (Object Oriented Programming) Approach
The generated web application files are using OOP approach. It means, you can extend the capability of its power with your needs easily and quickly. For example, you can enhance/extend the ability of Export base class, by simply customizing the template files, afterwards zip it back, and then use it for your future projects.
Reason 18: All customization can be simply done from the Template file
As we have already known, any code generator cannot fulfil your needs a hundred percent. Thus, you have to make some adjustment in order to suit with your needs. Generally, people will do this change by customizing the generated files. The impact is you will lose your customization each time you re-generate your web applications in future, unless you separate them in another folder. But this is not a good situation for us, since this will be annoying you. So, by using PHPMaker, I can make sure you not to customize the generated web application. All you have to do is by simply customizing the template file, afterwards, re-zip it back, and then re-use it for your next generation process. This will overcome your issue regarding the customizing the generated files!
Reason 19: Can be extended using Extensions
PHPMaker supports for some great extensions, such as: CAPTCHA, DHTML Editor, Details Preview (PreviewRow, YUIContainer), Excel Export (PHPExcel), Graphical Template (Graphical), Image Resize (PHP Thumb Library), PDF Export (DOMPDF), Popup Calendar (JSCalendar), and Scrolling Table. You can even create your own extension and use it in your PHPMaker project. I have been creating some other great extensions too, and now you can use it easily. It will save tons of your time to develop web applications!
Reason 20: Dynamic Menus
Web applications that generated by PHPMaker include either Horizontal or Vertical Menu. The menu items can be hidden or displayed on the fly in your web applications by optimizing the Server Events from PHPMaker. For example, you can hide the certain menus based on the certain User Levels. This enables you to create the dynamic menu to suits with your needs.
Reason 21: Code Repository
PHPMaker now provides a Code Repository for easy reuse of your code across projects and sharing with other users. You can add the code to the editor from it. The reusable code is stored in XML files which reside in a subfolder named "code" under the installation folder. This is useful if you have many general code and often needed in your PHPMaker projects.
Reason 22: Files Uploading to Folder and Database
You can add this Files Uploading either to folder or database into your web applications easily and quickly. All of the common functionality for file uploading have been provided by PHPMaker so you can optimize it based on your needs.
Reason 23: Audit Trail
Almost all web applications nowadays need this feature to monitor the users activity. Who has done something and when did it happen. PHPMaker has provided it for you. You can choose whether to save the logs into the database or log files in your server easily and quickly. You can even select all tables to log users activities into the Audit Trail. Let PHPMaker generate the table and the code for you!
Reason 24: Using ADODB Library
The generated web application uses ADODB library for connecting to the different database engine. This will help developer to use the object connection generally and easily. For example, to access the Recordset object, then simply assign a variable with the results of SELECT query execution of Connection object. We can get the RecordCount information, move to next record, loop through the Recordset object to get the values of Fields, and so forth. Another advantage is you can use the different database engine in one project without having too much doing code adjustments.
Reason 25: Smart Record Navigation
PHPMaker will generate the smart navigation in the page that will display the record navigation. Let's say you are displaying 100 records in a List page, and the page size is 10 records per page. Now you are on the "Page 1 of 10". Click on the Next button/link to go to the second page. Now you are on the "Page 2 of 10". View the 20th record by clicking on the magnifying glass icon that located in the line of 20th record, and then you are viewing the 20th record and the navigation will display: "Page 20 of 100". Click on Next button/link, and now you are on the "Page 21 of 100", then click on the "Back to List" link, and the List page will display "Page 3 of 10". It will automatically adjust to the page where the latest record you viewed before is located. In other words, this is the smartest navigation that I have ever found when using the pagination method in a web application.
Reason 26: Template Object Properties
PHPMaker provides so many object-based properties in its template that you can use to customize the generating process based on your needs. For example, you want to generate the certain code in the template only if your "users" security table is defined in your PHPMaker project, then you can get the value of SecType property that belongs to the PROJ object is equal with Use Table. There are 9 objects available. They are: Control Object, Project Object, Master Details Object, Custom Scripts Object, MenuList Object, Database Object, Table Object, Field Object, and Language Object. This is another reason why PHPMaker is very flexible then to generate your code.
Reason 27: System Functions
Reason 28: Pagination in Edit Page
Started from version 10, PHPMaker provided the records navigation through the paging on the Edit pages. This will enable you to browser the record in the Edit mode without having to go back to the List page. In the previous version, you have to go back to the List page if you want to browse to another records. This will save a lot of time of your web application users while editing the records.
Reason 29: Pagination in Master/Detail Page
Started from version 10, PHPMaker provided the records navigation through the paging on the Master/Detail pages. This will enable you to browser the record in the Master record including its Detail table(s) without having to go back to the List page which will display the master records list. In the previous version, you have to go back to the List page if you want to browse to another records. This will save lots of your web application users while browsing the Master/Detail records, morevoer for the master record which will contain multiple detail tables.
Reason 30: Displaying Image and Text in Link or Button
Started from version 10, PHPMaker has the ability to generate the links that contain both Image and Text. You can decide whether to generate them on all related pages, or disable the global setting by defining it only for the certain table. You can even to display or hide them by using global or table level server event.
Reason 31: Grouping the Button
Started from version 10, PHPMaker can group the links/buttons based on the three main options. First is: List Options, this will enable you to group the links in each row so that they will save a lot of space in your web applications. Secondly: Export Options, this will enable you to group the links that related to Export to media features so that it will save a lot of space at the top of the page where the links are located. Thirdly, Actions Options, this will enable you to group the links that related to the certain actions such as Add, Edit, Delete Selected Records, Update Selected Records links that located above and below the main table.
Reason 32: Using Bootstrap
Started from version 10, PHPMaker has been using Twitter Bootstrap so that the look and view of the generated web applications will look mobile friendly. However, this will depend on the number of the column which will be displayed in the List page. Another advantage of this Bootstrap is that you as a Web Developer can speed up you development time while designing the layout of your web application.
Reason 33: Using Less for Dynamically Generated the CSS Files
Started from version 10, PHPMaker has been using Less in order to generate the CSS files which will use the certain variables. That being said, now you can define your own font size based on the main font size that defined from the General sub-tab under the HTML tab of PHPMaker. This will make the look and feel of your generated web applications becomes look more professional than the previous version.
Reason 34: Referential Integrity
Started from version 10, PHPMaker has added the ability to ensure that user may not add/update a record in the detail table unless the foreign key points to a valid record in the master table. This is very useful if you don't want to implement it via the database, then you can simply use this feature from PHPMaker side. Your generated web applications will automatically handle this nicely!
Reason 35: Cascade Delete
Started from version 10, PHPMaker has added the Cascade Delete feature. For those of you who have used this feature in Microsoft Access database, then this is a killer feature in PHPMaker in order to ensure that if a record in the master table is deleted, all corresponding records in the detail table will be deleted. This is very useful if you don't want to implement this feature via the database, or if the database has not supported for this feature, yet. Let PHPMaker handle this nicely in the generated web applications.
Reason 36: Cascade Update
Started from version 10, PHPMaker has added the Cascade Update feature. For those of you who have used this feature in Microsoft Access database, then this is a killer feature in PHPMaker in order to ensure that if a record in the master table is updated, then all corresponding records in the detail table will be updated, too. This is very useful if you don't want to implement this feature via the database, or if the database has not supported for this feature, yet. Let PHPMaker handle this nicely in the generated web applications.
Reason 37: Master/Detail View Page
Started from version 10, PHPMaker has added the ability to browse the Master/Detail record without having to always back to its master record. It means that you can now display the Master/Detail view page and browse to the next or previous record easily and quickly.
Reason 38: Master/Detail Add/Copy Page
Started from version 10, PHPMaker has added the ability to either Add or Copy the Master/Detail record without having to always back to its master record. It means that you can now add new Master/Detail record only in one page, without having to add the master record and then save it first. In other words, this ability also will enable you to add a new master record including its multiple detail records from more than one detail tables.
Reason 39: Master/Detail Edit Page
Started from version 10, PHPMaker has added the ability to Edit the Master/Detail record without having to always back to its master record. It means that you can now edit the existing Master/Detail record only in one page, without having to display the master record edit page first. In other words, this ability also will enable you to add edit the master record including its multiple detail records from more than one detail tables.
Reason 40: Custom Row Action
Started from version 10, PHPMaker has added the ability to execute the custom row action based on the selected record(s). This action is implemented via Server Events. It means that we, as the Web Developers, are able to implement the business logic for updating multiple records easily and quickly, and simpler! We don't need to handle which record(s) is (are) selected and implement the custom action for the selected record(s). Let the framework that is being used by PHPMaker handles it for you.
Reason 41: Custom Files
Started from version 11, PHPMaker added the Custom Files which will allow Web Developers to create their custom pages inside the PHPMaker project. Since it is maintained on project basis, then Web Developers can implement the built-in features, such as Security, using PHPMaker classes, and so forth.
Reason 42: Modal Dialog for Advanced Search Page
Started from version 11, PHPMaker added the ability to use Modal Dialog for displaying the Advanced Search page. In other words, this will make End-Users be easier while using Advanced Search feature without having to leave the List page.
Reason 43: Responsive Layout with Bootstrap 3
Started from version 11, PHPMaker used Bootstrap 3 as the Front-End Framework. This will make your Web Applications' layout become fit both for Desktop and Mobile style.
Reason 44: New Mobile Menu
Started from version 11, PHPMaker added new mobile menu for the generated Web Applications which will looks so good in your Mobile device.
Reason 45: Toolbar and Vector Icons with Tooltip
Compact breadcrumbs, export options, search options and language selection list (if multi-language) in one row to make more room for data. Most buttons come with vector icon and tooltip.
Reason 46: Improved Theme with Bootstrap Variables
Allow customizing all Bootstrap variables right in the UI. Too many variables if I explain you in here. Just try from HTML | Theme menu in your PHPMaker project.
Reason 47: Dialog Box for Displaying Image View
View full size images without leaving the page. Images for the fields allowing multiple upload will be displayed as groups.
Please note that I will always continue updating this article, especially when I found something new.