Esempio n. 1
0
 /**
  * @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);
 }
Esempio n. 2
0
 /**
  * @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;
 }
Esempio n. 3
0
 /**
  * @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));
 }
Esempio n. 4
0
 /**
  * @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;
 }
Esempio n. 5
0
 /**
  * @param     $nameTable
  * @param int $schema
  *
  * @return \Classes\Db\DbTable
  */
 public function createTable($nameTable, $schema = 0)
 {
     if (!isset($this->objDbTables[$schema])) {
         $this->objDbTables[$schema] = new DbTables();
     }
     $this->objDbTables[$schema][trim($nameTable)] = DbTable::getInstance()->populate(array('table' => $nameTable, 'schema' => $schema, 'database' => $this->database));
     return $this;
 }