Nextras\Orm\Entity\Reflection\MetadataParser::processPropertyModifier PHP Méthode

processPropertyModifier() protected méthode

protected processPropertyModifier ( PropertyMetadata $property, $modifier, array $args )
$property PropertyMetadata
$args array
    protected function processPropertyModifier(PropertyMetadata $property, $modifier, array $args)
    {
        $type = strtolower($modifier);
        if (!isset($this->modifiers[$type])) {
            throw new InvalidModifierDefinitionException("Unknown modifier '{$type}' type for {$this->currentReflection->name}::\${$property->name} property.");
        }
        $callback = $this->modifiers[$type];
        if (!is_array($callback)) {
            $callback = [$this, $callback];
        }
        call_user_func_array($callback, [$property, &$args]);
        if (!empty($args)) {
            $parts = [];
            foreach ($args as $key => $val) {
                if (is_numeric($key) && !is_array($val)) {
                    $parts[] = $val;
                    continue;
                }
                $parts[] = $key;
            }
            throw new InvalidModifierDefinitionException("Modifier {{$type}} in {$this->currentReflection->name}::\${$property->name} property has unknown arguments: " . implode(', ', $parts) . '.');
        }
    }

Usage Example

 /**
  * @param PropertyMetadata $property
  * @param string $modifier
  * @param array $args
  */
 protected function processPropertyModifier(PropertyMetadata $property, $modifier, array $args)
 {
     if (isset($this->inverseModifier[$modifier])) {
         $this->inverseModifier[$modifier]->setCurrentReflection($this->currentReflection);
     }
     parent::processPropertyModifier($property, $modifier, $args);
 }