コード例 #1
0
ファイル: DbTable.php プロジェクト: pedro151/orm-generator
 /**
  * @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);
 }
コード例 #2
0
ファイル: DbTables.php プロジェクト: pedro151/orm-generator
 /**
  * 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;
 }
コード例 #3
0
ファイル: Entity.php プロジェクト: pedro151/orm-generator
 /**
  * @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;
 }
コード例 #4
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));
 }
コード例 #5
0
ファイル: Entity.php プロジェクト: pedro151/orm-generator
 /**
  * @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;
 }
コード例 #6
0
ファイル: entity.php プロジェクト: pedro151/orm-generator
    ?>
()
    {
        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 
}
?>

}
コード例 #7
0
ファイル: peer.php プロジェクト: pedro151/orm-generator
?>
 * @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();