What is CodeIgniter Wizard?
It is a relational database-driven PHP code generator which reads your MySQL database tables and columns, presents you with some options to determine which ones to include, how to interpret them, and then quickly creates a working web application with full CRUD functionality using CodeIgniter 4.x framework complete with entity models, views and controllers (even entities) and a Bootstrap 4-based CSS layout. The generated code is secure, clean, highly re-usable and quite portable.
Which databases are supported?
Note: at the time of the development of this version and writing the manuals / help files, PDO was not yet supported by CodeIgniter v4.0.x itself.
What can I use CodeIgniter Wizard for?
CodeIgniter Wizard is currently most suitable for developing the basis for administrative control panels for back-ends such as custom CMS, or any database-driven records keeping and management application. However the generated entity-models can be used for any type of application including the end user-facing front-end layer, therefore saving an considerable amount of time in addition to the backend development.
Furthermore, since form design and validation is one of the most tedius and time-consuming tasks, the highly re-usable code generated by CodeIgniter Wizard for this can be used elsewhere - inside or outside the application.
Another use case might be that in case you are new to CodeIgniter and want to learn it by examining code written with good practices, CodeIgniter Wizard can add great value to your learning process with.
Similarly CI 3 developers who want the port their code base, but are unfamiliar with CI 4 can benefit a great deal from CodeIgniter Wizard.
Another great use of CI Wizard is creating custom CMS backends.
How is CodeIgniter Wizard different from other code generators?
Although there were none that we know of for specifically CI 4 (on any platform, let alone Macs) at the time of developing version 1.x of CodeIgniter Wizard, code generators out there usually create some code sufficient enough to get the basic CRUD operations done in a cryptic way, not necessarily providing a very elegant UX, and their code usually relies on some kind of heavy-weight custom library (even many of which are like framework-in-a-framework) and the code they generate is usually not portable elsewhere.
In contrast, CodeIgniter Wizard generates pretty standard and highly portable code which doesn't really have any 3rd party dependency.
How CI Wizard Works
How much time can CodeIgniter Wizard save?
We measured that an average web developer can develop between 1 and 3 web application modules (being not so simple, not too advanced either) in a work day - that has more than, say, five fields (for the model, form, table view columns), and at least one foreign key relationship - excluding time spent on bugs and refinements after doing other modules. (Entity model, controller and views are meant by a module).
CodeIgniter Wizard performs the same work in about less than ten minutes including user's interaction in the GUI to point-and-select fields and customize form controls depending on data types.
What code exactly does CI Wizard generate?
Class files for entities, models and controllers, view files for grid / table list screens, and forms, sidebar content and a simple dashboard starter.
It also generates code to select joined data across multiple database tables depending on foreign key relationships or custom relationships set in the GUI by the user.
How does CI Wizard generate the code?
It reads your database, makes a few decisions about it, then asks you to make some decisions yourself such as to confirm the name the model and controller files, to select which columns you want, what fields should be generated from them, and where exactly you want them.
Web Apps Created with CI Wizard
What backend library dependencies do web apps created with CodeIgniter Wizard have?
None. CodeIgniter Wizard creates pretty standard code and the classes it generates rely on a couple of base model and controller classes, also a standard CodeIgniter helper file all of which you can customize to your own needs.
What software license is required?
Web applications created using CodeIgniter Wizard contain open-source software and they come with a MIT license which you are granted. CodeIgniter Wizard itself requires a proprietary commercial license per user which you will have automatically obtained by purchasing the product from the Mac app store. Ozar, the developer does neither have, nor will claim any rights on what you create with CodeIgniter Wizard.
Which exact version of CodeIgniter framework do web apps generated with the Wizard use?
At the time of the development of this version, the stable release of CI framework was 4.0.4, so CI Wizard creates apps built on this version.
I am a newbie PHP developer who knows nothing about CodeIgniter. Is CodeIgniter Wizard good for me?
If you have OOP skills and/or knowledge in PHP, you can use CodeIgniter Wizard to learn CodeIgniter 4 by examining source code of web apps generated with the Wizard.
Can CodeIgniter Wizard generate CI 3 applications?
That said, in the event of a massive amount of petitions from different users, we can add this as a new feature in a future version.
You mention generating both models and entities. Aren't Models and Entities supposed to be the same thing?
In most MVC frameworks, yes. In CodeIgniter 4, entities and models are closely related, but they reside in separate classes and they have their own specific purposes. CodeIgniter Wizard generates both of them in their own respective class file as meant to be.
Updating the App
What happens when a newer version of CodeIgniter framework comes out?
Once we verify the latest release is stable (which may not necessarily be the case with every open-source project), we will update CodeIgniter Wizard to include that distribution, also making sure to update our own code to be compatible.
How secure is the code generated by CodeIgniter Wizard?
Web applications generated with CodeIgniter Wizard have a very solid and secure base with advanced input sanitization and form validation based on the data types coming from the database. That said, this version of the application does not add authentication and authorization which you or your developer has to implement yourself/themselves. But it is a matter of adding it as an additional feature than having to replace the existing base code which in itself is very robust and secure.