Пример #1
0
 public function getProperties()
 {
     $propertiesReflections = $this->reflection->getProperties();
     $properties = array_map(function ($reflection) {
         return new PropertyElement($reflection);
     }, $propertiesReflections);
     $properties = array_filter($properties, function (PropertyElement $property) {
         return !$property->isExcluded();
     });
     return $properties;
 }
Пример #2
0
 protected function getProperties()
 {
     $props = $this->reflection->getProperties();
     $classname = $this->reflection->getName();
     if ($this->skip_inherited_attr) {
         $props = array_filter($props, function ($prop) use($classname) {
             return $classname == $prop->getDeclaringClassName();
         });
     }
     return array_map(function ($v) {
         return new PropertyElement($v);
     }, $props);
 }
Пример #3
0
 protected function getProperties()
 {
     return array_map(function ($v) {
         return new PropertyElement($v);
     }, $this->reflection->getProperties());
 }
Пример #4
0
 /**
  * Returns list of advices from advisor and point filter
  *
  * @param ReflectionClass|ParsedReflectionClass $class Class to inject advices
  * @param Aop\PointcutAdvisor $advisor Advisor for class
  * @param string $advisorId Identifier of advisor
  * @param Aop\PointFilter $filter Filter for points
  *
  * @return array
  */
 private function getAdvicesFromAdvisor($class, Aop\PointcutAdvisor $advisor, $advisorId, Aop\PointFilter $filter)
 {
     $classAdvices = array();
     // Check methods in class only for method filters
     if ($filter->getKind() & Aop\PointFilter::KIND_METHOD) {
         $mask = ReflectionMethod::IS_PUBLIC | ReflectionMethod::IS_PROTECTED;
         foreach ($class->getMethods($mask) as $method) {
             /** @var $method ReflectionMethod| */
             if ($filter->matches($method)) {
                 $prefix = $method->isStatic() ? AspectContainer::STATIC_METHOD_PREFIX : AspectContainer::METHOD_PREFIX;
                 $classAdvices[$prefix][$method->name][$advisorId] = $advisor->getAdvice();
             }
         }
     }
     // Check properties in class only for property filters
     if ($filter->getKind() & Aop\PointFilter::KIND_PROPERTY) {
         $mask = ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED;
         foreach ($class->getProperties($mask) as $property) {
             /** @var $property ReflectionProperty */
             if ($filter->matches($property)) {
                 $classAdvices[AspectContainer::PROPERTY_PREFIX][$property->name][$advisorId] = $advisor->getAdvice();
             }
         }
     }
     return $classAdvices;
 }