Package proposal: DataObjectOnSpeed (naming is discussable :-))

From: Date: Tue, 22 Jul 2003 23:17:58 +0000
Subject: Package proposal: DataObjectOnSpeed (naming is discussable :-))
Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-18561@lists.php.net to get a copy of this message
Hey guys, as mentioned a few days ago, I´ve written a class that acts as a bridge between DB_DataObject and HTML_QuickForm, which makes it very suitable for rapid prototyping of applications. - It can auto-generate fully functional forms out of your DataObject-derived classes. - It will try to auto-detect the field types and choose appropriate form element types for them. As this sometimes is not possible out- of-the-box, this can be influenced by setting some new config properties in your classes. - It will try to set up some *very* basic validation rules based on the field´s datatype. If you need to add to or alter these rules, you can do so after auto-generation. - It will automatically follow table relations to build select boxes (if the links.ini file is correctly configured). - It allows you to start out prototyping quickly using generated forms and then customizing the form elements step-by-step until you´re satisfied with the outcome. You can mix user-defined element definitions with auto-generated ones, so you only need to do the minimum amount of neccessary work (yes, I am lazy - that´s why I´ve written this ;-)) - It provides a standard method for processing incoming form data and for automatically performing an insert or update on the database with that new data. - It can not yet make coffee :-((( The code can be seen here: http://projects.21st-hq.de/DataObjectOnSpeed.phps When using this class, making a form *and* performing the appropriate insert or update operations for some table data looks as simple as this: include_once('DataObjects/Customers.php'); $cust = &new Customers; if (isset($_GET['customer_id'])) {
    $cust->get($_GET['customer_id']);
} $form = $cust->getForm($_SERVER['PHP_SELF']); if ($form->validate()) {
    $form->freeze();
    // This will automagically insert or update the data
    $form->process(array(&$cust,'processForm'), false);
} $form->display(); That´s all. The name of the class is more like a working title ;-) Realistically, I´d be for DB_DataObjectUtils - I wouldn´t like to have any reference to "Form" or "QuickForm" in the name, as I might add some more utility functions in the future that are not related to form generation. Opinions, votes? :-) CU Markus

« previous php.pear.dev (#18561) next »