function setCommand($command) { $command = parent::setCommand($command); $command->getQuery()->getResource()->setModel($this->getModel()); }
<?php use DBAL\Data; use DBAL\XML; $dataSource = new Data\Source(); $dataAdapter = new Data\Adapter(); $params = array('path' => 'tests\\test.xml'); $dataAdapter->View = new XML\View($params); $dataAdapter->Fill($dataSource); var_dump($dataSource->Data);
<?php use DBAL\Data; use DBAL\XML; use DBAL\XML\Data\Tree; $dataSource = new Data\Source(); $dataAdapter = new Data\Adapter(); $node = new Tree\Node('test'); $subnode = new Tree\Node('subnode', array('test' => 'someValue', 'attr' => 2), $node); $dataSource->add($node); $params = array('path' => 'tests\\test.xml'); $dataAdapter->View = new XML\View($params); $dataAdapter->Update($dataSource); var_dump($dataSource);
// MODEL BUILDER TEST // Model builder modifies tables and column definitions in the database /* EXAMPLE XML ENTITY <entity name="Clothing" type="Product"> <attribute name="Color" type="string">None</attribute> </entity> */ // ESTABLISH DATABASE $driver = new DB\Driver\MySQL(); $database = new DB\Database($driver); $core->setDatabase($database); // DATA COMPONENTS $source = new DB\Data\Source(); $adapter = new DB\Data\Adapter(); // RETRIEVE XML ENTITY DATA $adapter->View = new DB\XML\View\Entity(); $xmlEntities = $adapter->Fill($source); // RETRIEVE SQL ENTITY DATA $adapter->View = new DB\SQL\View\Entity(); $sqlEntities = $adapter->Fill($source); // CREATE MODELER $query = new DB\SQL\Query(); $query->setBuilder(new DBAL\SQL\Modeler(array())); // SPECIFY THE ENTITIES TO COMPARE $query->build()->update($sqlEntities)->set($xmlEntities); // CREATES/ALTERS/DROP SQL TABLES OR COLUMNS // COMPARE XML TO CURRENT SCHEMA AND GENERATE DIFFERENCE // GENERATE TRANSACTION TO UPDATE SCHEMA BASED ON DIFFERENCES $query();