Jarves\Configuration\Configs::getObject PHP Метод

getObject() публичный Метод

public getObject ( string $objectKey ) : Object
$objectKey string
Результат Object
    public function getObject($objectKey)
    {
        $objectKey = Objects::normalizeObjectKey($objectKey);
        if (false === strpos($objectKey, '/')) {
            return null;
        }
        list($bundleName, $objectName) = explode('/', $objectKey);
        if ('bundle' !== substr($bundleName, -6)) {
            $bundleName .= 'bundle';
        }
        if (!($config = $this->getConfig($bundleName))) {
            throw new BundleNotFoundException(sprintf('Bundle `%s` not found. [%s]', $bundleName, $objectKey));
        }
        return $config->getObject($objectName);
    }

Usage Example

Пример #1
0
 /**
  * @param Configs $configs
  * @return RelationDefinition|null
  * @throws \Jarves\Exceptions\ModelBuildException
  */
 protected function getRelation(Configs $configs)
 {
     $field = $this->getFieldDefinition();
     $columns = [];
     $foreignObjectDefinition = $configs->getObject($field->getObject());
     if (!$foreignObjectDefinition) {
         throw new ModelBuildException(sprintf('ObjectKey `%s` not found for field `%s` in object `%s`', $field->getObject(), $field->getId(), $field->getObjectDefinition()->getId()));
     }
     $relation = new RelationDefinition();
     $relation->setName($field->getId());
     $relation->setType($field->getObjectRelation());
     $relation->setForeignObjectKey($field->getObject());
     $relation->setWithConstraint($field->getObjectRelationWithConstraint());
     if ($refName = $field->getObjectRefRelationName()) {
         $relation->setRefName($refName);
     }
     foreach ($foreignObjectDefinition->getPrimaryKeys() as $pk) {
         $fieldColumns = $pk->getFieldType()->getColumns();
         $columns = array_merge($columns, $fieldColumns);
     }
     if (!$columns) {
         return null;
     }
     $references = [];
     foreach ($columns as $column) {
         $reference = new RelationReferenceDefinition();
         $localColumn = clone $column;
         $localColumn->setName($field->getId() . ucfirst($column->getName()));
         $reference->setLocalColumn($localColumn);
         $reference->setForeignColumn($column);
         $references[] = $reference;
     }
     $relation->setReferences($references);
     return $relation;
 }
All Usage Examples Of Jarves\Configuration\Configs::getObject