Geeklog_Generator 1.0.0 has been release to the Geeklog PEAR Channel. I’m not making any sort of announcement on Geeklog’s site because by itself it’s not immediately useful. The generated code requires the Geeklog_DAO package which is currently getting unit tested and should be out during the next day or two.
That aside, what is Geeklog_Generator? It’s a package that compliments the great ORM implementation, Propel. What’s missing from Propel, you ask? First and foremost, it’s always annoyed me that Propel (more concisely, the Propel Generator) doesn’t generate pure PHP model objects…objects that don’t need to include a bunch of persistence level code. With native Propel objects that’s not the case. This is also problematic when you want to use model objects in a SOAP-based web service because any protected/private members are not available.
Geeklog_Generator gets around this by building minimal, pure PHP models (called Data Transfer Objects or DTO for short) that can not only be passed around easily via web services but it also but they can be quickly turned into the persistable Propel objects. This also fits perfectly into our model-view-controller implementation, MVCnPHP. SOAP requests and form posts are converted the data passed by their specific protocol and build the DTO(s) needed and then hand them off to a command that knows how to do the business logic validation how to save the data to the database.
This may be all a bit fuzzy for those reading this so when the next stable Geekog_DAO package is released I will post an article as to how all this stuff stitches together. Stay tuned…