/** * @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); }
/** * convert array */ public function toArrayFileName() { if (!empty($this->toArrayFileName)) { return $this->toArrayFileName; } foreach ($this->objDbTables as $objDbTable) { $this->toArrayFileName[] = AbstractMaker::getClassName($objDbTable->getName()) . '.php'; } return $this->toArrayFileName; }
/** * @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\Db\DbTable|\Classes\Db\Constrant $table * * @return mixed */ public function createClassNamespace($table) { $arrNames = $this->getBaseNamespace(); if (isset($this->arrConfig['folder-database']) && $this->arrConfig['folder-database']) { $arrNames[] = AbstractMaker::getClassName($this->arrConfig['driver']); } if (isset($this->arrConfig['folder-name']) && $this->arrConfig['folder-name']) { $arrNames[] = AbstractMaker::getClassName($this->arrConfig['folder-name']); } if ($table->hasSchema()) { $arrNames[] = $this->replaceReservedWord(AbstractMaker::getClassName($table->getSchema())); } else { $arrNames[] = $this->replaceReservedWord(AbstractMaker::getClassName($table->getDatabase())); } return implode(static::SEPARETOR, array_filter($arrNames)); }
/** * @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; }
?> () { if ($this->_depend_<?php echo $depend['variable']; ?> === null) { $this->_depend_<?php echo $depend['variable']; ?> = $this->findDependentRowset('<?php echo $objTables->getNamespace(); ?> _DbTable_<?php echo \Classes\Maker\AbstractMaker::getClassName($depend['table']); ?> '); } return $this->_depend_<?php echo $depend['variable']; ?> ; } <?php } ?> }
?> * @link <?php echo $this->config->link . "\n"; ?> * @version <?php echo $this->config->version . "\n"; ?> */ namespace <?php echo $objTables->getNamespace(); ?> \Peer; class <?php echo \Classes\Maker\AbstractMaker::getClassName($objTables->getName()); ?> extends \<?php echo $this->config->namespace ? $this->config->namespace . "\\" : ""; ?> Models\<?php echo $objMakeFile->getFilesFixeds('parentClass')->getFileName() . "\n"; ?> { /** * Name of the object for static instance * * @var string $className */ protected static $className = '<?php echo $objTables->getNamespace();