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
 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);
     }
 }
Esempio n. 3
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. 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;
 }