Exemplo n.º 1
0
 public function getProperty($name)
 {
     if (Attributes::isClassAttribute(get_called_class(), $name)) {
         return $this->getAttribute($name);
     } elseif ($type = AccessibleProperties::getProperty(get_called_class(), $name)) {
         if (isset($type['propName'])) {
             return $this->{$type['propName']};
         } elseif ($type[0]) {
             return $this->{$name}();
         }
     }
     throw new Exception\InvalidArgumentException(sprintf("Trying to get unknown property %s::%s", get_called_class(), $name));
 }
Exemplo n.º 2
0
 protected function getPropertyGetter($modelClass, $propName)
 {
     if (Attributes::isClassAttribute($modelClass, $propName)) {
         return function ($model) use($propName) {
             return $model->getAttribute($propName);
         };
     } else {
         $property = AccessibleProperties::getProperty($modelClass, $propName);
         if ($property === true) {
             return function ($model) use($propName) {
                 $model->{$propName};
             };
         } elseif ($property[0]) {
             return function ($model) use($propName) {
                 $model->{$propName}();
             };
         }
     }
     throw new Exception\RuntimeException(sprintf("Unknown attribute or property %s::%s", $modelClass, $propName));
 }