PyroCMS 3 is a promising new platform built on top of Laravel that promises developers to build sold applications faster using the Streams Platform. It offers a number of application components or structures that plugs-in the platform to carry-out different tasks. For example, Modules, Extensions, Field Types and Themes. A unique feature in PyroCMS 3 is its underlying abstract typing system called Streams, a powerful tool that gives the developers and or Website designers flexibility in creating data containers for their applications. The platform offers a number of Types, such as text, numbers, date and time, and even relationships types to connect different data containers (database tables).
I have been using PyroCMS 2.3 for developing iBuild for a number of years now, and since the release of PyroCMS 3 beta earlier this year I decided to migrate all of iBuild code to the new platform. This has been a challenging task, for one thing, PyroCMS 3 was in pre alpha when I stating the migration process. Despite the steep learning curve of learning all about Pyro 3 and Laravel to migrate from CodeIgniter it was all well worth it. I predict great success for Pyro3 and the Streams Platform for providing such great code-base written on clean abstracted concepts.
The code migration process wasn’t as easy and swift as I anticipated and took me months to make progress. For one thing, I had to re-write part of the software from scratch. Many of that involved re-coding large number of classes, adding repositories to models, writing table and forms builders and all the wiring required to plug them into the system. Labourious and systematic work, the type machines are better at and what I have built iBuild to solve the problem of. So, that was my signal to automate this process and to build something to cut the time I required to write such software modules.
Comes, Entity Builder Extension, a pyrocMS 3 extension that is built to make the lives of Pyro 3 developers easier. This extension would code generate a software structure called Entity for every Stream migration in a PyroCMS 3 Module. The code generated includes Models, Repositories, Table Builders, Form Builders, Admin Controller,s Seeders etc. It would also take care of all the plumbing involved with the Module Service Provider (bindings, routes, etc).