Jarves\Configuration\Object::getTable PHP Méthode

getTable() public méthode

public getTable ( ) : string
Résultat string
    public function getTable()
    {
        return $this->table;
    }

Usage Example

Exemple #1
0
 /**
  * @param \Jarves\Configuration\Object $object
  * @param \SimpleXMLElement $objectTable
  *
  * @return \SimpleXMLElement
  *
  * @throws \Jarves\Exceptions\ModelBuildException
  */
 protected function getXmlTable(Object $object, \SimpleXMLElement $objectTable = null)
 {
     if (!$objectTable) {
         $objectTable = new \SimpleXMLElement('<table />');
         //simplexml_load_string('<database></database>');
     }
     if (!$object->getTable()) {
         throw new ModelBuildException(sprintf('The object `%s` has no table defined', $object->getId()));
     }
     $objectTable['name'] = $object->getTable();
     $objectTable['phpName'] = ucfirst($object->getId());
     if ($object->isCrossRef()) {
         $objectTable['isCrossRef'] = 'true';
     }
     $columnsDefined = array();
     if (!$object->getFields()) {
         throw new ModelBuildException(sprintf('The object `%s` has no fields defined', $object->getId()));
     }
     foreach ($object->getFields() as $field) {
         if ($columns = $field->getFieldType()->getColumns()) {
             foreach ($columns as $column) {
                 $name = Tools::camelcase2Underscore($column->getName());
                 //column exist?
                 $eColumns = $objectTable->xpath('column[@name =\'' . $name . '\']');
                 if ($eColumns) {
                     $newCol = current($eColumns);
                     if ($newCol['custom'] == true) {
                         continue;
                     }
                 } else {
                     $newCol = $objectTable->addChild('column');
                 }
                 $columnsDefined[] = $name;
                 $this->setupColumnAttributes($column, $newCol);
                 if ($field->isRequired()) {
                     $newCol['required'] = 'true';
                 }
                 if ($field->isPrimaryKey()) {
                     $newCol['primaryKey'] = 'true';
                 }
                 if ($field->isAutoIncrement()) {
                     $newCol['autoIncrement'] = 'true';
                 }
             }
         }
     }
     if ($relations = $object->getRelations()) {
         foreach ($relations as $relation) {
             $this->addRelation($object, $relation, $objectTable);
         }
     }
     if ($object->isNested()) {
         $behaviors = $objectTable->xpath('behavior[@name=\'nested_set\']');
         if ($behaviors) {
             $behavior = current($behaviors);
         } else {
             $behavior = $objectTable->addChild('behavior');
         }
         if (!$behavior['custom']) {
             $behavior['name'] = 'nested_set';
             $parameters = ['left_column' => 'lft', 'right_column' => 'rgt', 'level_column' => 'lvl'];
             if ($object->getNestedRootAsObject()) {
                 $parameters['use_scope'] = 'true';
                 $parameters['scope_column'] = Tools::camelcase2Underscore($object->getNestedRootObjectField());
             }
             foreach ($parameters as $k => $v) {
                 $parameter = $behavior->addChild('parameter');
                 $parameter['name'] = $k;
                 $parameter['value'] = $v;
             }
         }
     }
     if ($object['workspace']) {
         $behaviors = $objectTable->xpath('behavior[@name=\'Jarves\\Propel\\Behavior\\WorkspaceBehavior\']');
         if ($behaviors) {
             $behavior = current($behaviors);
         } else {
             $behavior = $objectTable->addChild('behavior');
         }
         $behavior['name'] = 'Jarves\\Propel\\Behavior\\WorkspaceBehavior';
     }
     $vendors = $objectTable->xpath('vendor[@type=\'mysql\']');
     if ($vendors) {
         foreach ($vendors as $k => $v) {
             unset($vendors[$k][0]);
         }
     }
     $vendor = $objectTable->addChild('vendor');
     $vendor['type'] = 'mysql';
     $params = $vendor->xpath('parameter[@name=\'Charset\']');
     if ($params) {
         $param = current($params);
     } else {
         $param = $vendor->addChild('parameter');
     }
     $param['name'] = 'Charset';
     $param['value'] = 'utf8';
     return $objectTable;
     //        $dom = new \DOMDocument;
     //        $dom->preserveWhiteSpace = false;
     //        $dom->loadXML($xml->asXML());
     //        $dom->formatOutput = true;
     //
     //        $xml = $dom->saveXML();
     //        $prefix = '<?xml version="1.0"? >';
     //        if (0 === strpos($xml, $prefix)) {
     //            $xml = substr($xml, strlen($prefix));
     //        }
     //
     //        return trim($xml);
 }
All Usage Examples Of Jarves\Configuration\Object::getTable
Object