/** * @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); }
/** * @param \Classes\MakerFile $makerFile * @param \Classes\Db\DbTable $dbTable * * @return array */ private function listParents(\Classes\MakerFile $makerFile, \Classes\Db\DbTable $dbTable) { $mapParents = ''; $references = array(); foreach ($dbTable->getForeingkeys() as $objColumn) { $constrant = $objColumn->getFks(); $references[] = sprintf('$this->belongsTo(\'%s\', \'%s\', \'%s\', array(\'alias\' => \'%s\'))', $objColumn->getName(), $makerFile->getConfig()->createClassNamespace($constrant) . Phalcon::SEPARETOR . AbstractMaker::getClassName($constrant->getTable()), $constrant->getColumn(), AbstractMaker::getClassName($constrant->getTable())); } if (sizeof($references) > 0) { $mapParents = join(";\n\t\t", $references) . ";\n"; } return $mapParents; }
/** * @param \Classes\MakerFile $makerFile * @param \Classes\Db\DbTable $dbTable * * @return array */ private function listParents(\Classes\MakerFile $makerFile, \Classes\Db\DbTable $dbTable) { $parents = array(); foreach ($dbTable->getForeingkeys() as $objColumn) { $constrant = $objColumn->getFks(); $name = 'Parent' . ZendFrameworkOne::SEPARETOR . AbstractMaker::getClassName($constrant->getTable()) . ZendFrameworkOne::SEPARETOR . 'By' . ZendFrameworkOne::SEPARETOR . $objColumn->getName(); $variable = $constrant->getNameConstrant() . ZendFrameworkOne::SEPARETOR . $objColumn->getName(); $arrClass = array($makerFile->getConfig()->createClassNamespace($constrant), AbstractMaker::getClassName($constrant->getTable())); $class = implode(ZendFrameworkOne::SEPARETOR, array_filter($arrClass)); $parents[] = array('class' => $class, 'function' => AbstractMaker::getClassName($name), 'table' => $constrant->getTable(), 'column' => $constrant->getColumn(), 'name' => $constrant->getNameConstrant(), 'variable' => $variable); unset($name); } return $parents; }