/** * @param \Classes\MakerFile $makerFile * @param \Classes\Db\DbTable $dbTable * * @return array */ public function parseRelation(\Classes\MakerFile $makerFile, \Classes\Db\DbTable $dbTable) { $referenceMap = ''; $references = array(); $dependentTables = ''; $dependents = array(); foreach ($dbTable->getForeingkeys() as $objColumn) { $constrant = $objColumn->getFks(); $variable = $constrant->getNameConstrant() . ZendFrameworkOne::SEPARETOR . $objColumn->getName(); $arrClass = array($makerFile->getConfig()->createClassNamespace($constrant), 'DbTable', AbstractMaker::getClassName($constrant->getTable())); $class = implode(ZendFrameworkOne::SEPARETOR, array_filter($arrClass)); $references[] = sprintf("\n '%s' => array (\n 'columns' => '%s' ,\n 'refTableClass' => '%s',\n 'refColumns' =>'%s'\n )", AbstractMaker::getClassName($variable), $objColumn->getName(), $class, $constrant->getColumn()); } if (sizeof($references) > 0) { $referenceMap = "protected \$_referenceMap = array(" . join(',', $references) . "\n );"; } foreach ($dbTable->getDependences() as $objColumn) { foreach ($objColumn->getDependences() as $dependence) { $arrClass = array($makerFile->getConfig()->createClassNamespace($dependence), 'DbTable', AbstractMaker::getClassName($dependence->getTable())); $class = implode(ZendFrameworkOne::SEPARETOR, array_filter($arrClass)); $dependents[] = $class; } } if (sizeof($dependents) > 0) { $dependentTables = "protected \$_dependentTables = array(\n '" . join("',\n '", $dependents) . "'\n );"; } return array('referenceMap' => $referenceMap, 'dependentTables' => $dependentTables); }
public function testLocationSchemaOff() { $maker = new MakerFile(new Config(array('folder-database' => false, 'database' => $GLOBALS['dbname'], 'driver' => 'mysql', 'schema' => array()), $this->basePath, 3)); $db = MakerFile::getClassName($maker->getConfig()->getDatabase()); $arrBase = array($this->basePath, 'models', $db); foreach ($maker->location as $index => $item) { $location = implode(DIRECTORY_SEPARATOR, array_filter($arrBase)); $this->assertTrue($item == $location); } }
/** * @param \Classes\MakerFile $makerFile * @param \Classes\Db\DbTable $dbTable * * @return array */ private function listDependence(\Classes\MakerFile $makerFile, \Classes\Db\DbTable $dbTable) { $mapDependence = ''; $references = array(); foreach ($dbTable->getDependences() as $objColumn) { foreach ($objColumn->getDependences() as $dependence) { $references[] = sprintf('$this->hasMany(\'%s\', \'%s\', \'%s\', array(\'alias\' => \'%s\'))', $objColumn->getName(), $makerFile->getConfig()->createClassNamespace($dependence) . Phalcon::SEPARETOR . AbstractMaker::getClassName($dependence->getTable()), $dependence->getColumn(), AbstractMaker::getClassName($dependence->getTable())); } } if (sizeof($references) > 0) { $mapDependence = join(";\n\t\t", $references) . ";"; } return $mapDependence; }
/** * @param \Classes\MakerFile $makerFile * @param \Classes\Db\DbTable $dbTable * * @return array */ private function listDependence(\Classes\MakerFile $makerFile, \Classes\Db\DbTable $dbTable) { $depends = array(); foreach ($dbTable->getDependences() as $objColumn) { foreach ($objColumn->getDependences() as $dependence) { $name = 'Depend' . ZendFrameworkOne::SEPARETOR . AbstractMaker::getClassName($dependence->getTable()) . ZendFrameworkOne::SEPARETOR . 'By' . ZendFrameworkOne::SEPARETOR . $objColumn->getName(); if (!key_exists($name, $this->validFunc)) { $variable = $dependence->getNameConstrant() . ZendFrameworkOne::SEPARETOR . $objColumn->getName(); $arrClass = array($makerFile->getConfig()->createClassNamespace($dependence), AbstractMaker::getClassName($dependence->getTable())); $class = implode(ZendFrameworkOne::SEPARETOR, array_filter($arrClass)); $this->validFunc[$name] = true; $depends[] = array('class' => $class, 'function' => AbstractMaker::getClassName($name), 'table' => $dependence->getTable(), 'column' => $dependence->getColumn(), 'name' => $dependence->getNameConstrant(), 'variable' => $variable); } unset($name); } } return $depends; }