Quote from: rthrash at Aug 24, 2005, 12:03 PM
Ummm... any chance you could rephrase that in plain old English without the tech terms.
Well, I thought this was the core development forum ;-). Ok, I’m talking about introspection on database tables, so you can get a list of columns and details from core or custom tables and then determine how to process values for these columns (as strings, numeric, or datetime values). That’s what these new DBAPI features allow.
With this I created a form helper class which uses the introspection to automatically create INSERT/UPDATE statements from $_POST variables (and could also be used to validate input values, or even auto generate forms based directly on a database table; I’m currently defining the forms manually and just using the new DBAPI methods to help in processing the INSERT/UPDATE activity).
Quote from: rthrash at Aug 24, 2005, 12:03 PM
If I understand it correctly, it could for instance dynamically create all the tables/columns/rows needed for a custom application on the fly, correct? If that’s the case then yesterday would be a pretty good time to start working on this. 
And yes, it can be used in reverse (with some refactoring/additional features) to create custom tables as needed at runtime. I envision a manager module which allows end users to generate a class and corresponding db table with appropriate properties and behaviors (or vica versa, have it create classes from a data table). These definitions could be used in any number of ways, from easy form creation and processing, to attaching plugins to conditions or rules defined in the object class (e.g. extending the event model to allow creation of custom events for the objects).
It’s the beginnings of an object-relational mapping tool that can be utilized to allow easy, wizard-based creation of everything from simple dynamic forms to complex web applications with custom workflow capabilities.
Quote from: rthrash at Aug 24, 2005, 12:03 PM
Other real-world example of how it’s done now vs how it would be done with the new class and metadata?
It’s not really done now, without hooking into an external object-relational framework. Adding this capability would simply move us one step closer to supporting any number of database/persistence engines; if we converted the core data objects/tables to this system it would bring some portability to custom applications that interact with data using the framework, by isolating the business logic from the persistence mechanisms. E.G. Develop on MySQL, and then deploy to Oracle with no code changes.
I’m sure this will take more clarification, but I hope that helps a little. Still too many tech terms, but...