sike: I'd be very interested to see the xmi reader, at the moment I'm manually writing the xml description files for my business objects, and it's the only tedious part of the developing.
Brenden: I'm interested to see how you're using XSLT to create the business objects. At the moment things follow a rough timeline as
- Upload zip containing xml descriptor, php base class, any additional classes (eg specialised view / edit / admin pages).
- Read XML descriptor to discover any requirements (ie an entitywikipage requires that a certain version of entitywebpage already be installed because it inherits from it), and to discover what properties it contains. These properties are the saved to the database. Currently, at this point, the xml file becomes redundant and could be deleted
- To create the business object, I call 'new businessobjecttype()'. In the object's constructor, all the property definitions for that object's type are read in from the database, and a property object created for them. These property objects are then saved in a $properties array, indexed by the property name. I then use __set and __get for accessing the properties.
What I'm thinking is that it might be possible that instead of the need to read the information about the properties from the database, I could use XSLT to create all the property objects. Do you have any code you're interested in sharing?
And that point you make about not needing to use only ORM is very important; I prefer it when relating objects because it simplifies the whole process (and I'm willing to take the small performance hit). Sometimes though you just need the raw SQL power and I'll use that if necessary; however, it's not a core part of the system.