I have loads of ideas for implementation as LAMP applications. While I'm a pretty quick coder, it is quite disheartening (not to mention time consuming) to write basic database structures, data handling code, class wrappers for tables etc. The last three turns around I have almost decided to write a code generate to spit out the necessary. The idea is that you'd model your data structures in an XML file, and then you'd have some code which would generate the necessary MySQL code to create the database, as well as generating the necessary PHP classes to deal with the data - maybe even generate a rough-and-ready user interface.
Well, I've got fed up with wasting time writing boring code. Code generators can be a wee bit tricksy, of course, but I reckon the productivity gains will justify the time investment - especially as I have a number of cool applications which I want to implement at the moment! I've started work on it, and plan to complete it in the following stages:
- Process model, validate. Also generate MySQL code to create the database. (DONE - it was a bank holiday weekend)
- Generate PHP classes to handle the data model. Produce a decent front-end for the code generator. Document the model format and use of the system.
- Generate some UI bits as well - forms, grids and so forth.
- Iterate a model - given previous model and new model, generate ALTER TABLE statements for MySQL, or else data migration scripts or something.
Once it's further along (no earlier than after completion of step 2) and a bit more robust, I may open-source it. There seem to be a few similar ideas floating about out there, but none really suited the way I want to work, so maybe others could benefit from my work...