/**
  * Replacement for the original getProperties() method which makes sure
  * that Tx_Extbase_Reflection_PropertyReflection objects are returned instead of the
  * orginal ReflectionProperty instances.
  *
  * @param  long $filter: A filter mask
  * @return array of Tx_Extbase_Reflection_PropertyReflection Property reflection objects of the properties in this class
  */
 public function getProperties($filter = NULL)
 {
     $extendedProperties = array();
     $properties = $filter === NULL ? parent::getProperties() : parent::getProperties($filter);
     foreach ($properties as $property) {
         $extendedProperties[] = new Tx_ExtensionBuilder_Reflection_PropertyReflection($this->getName(), $property->getName());
     }
     return $extendedProperties;
 }
예제 #2
0
 /**
  * Reflects the given class and stores the results in this service's properties.
  *
  * @param string $className Full qualified name of the class to reflect
  * @return void
  */
 protected function reflectClass($className)
 {
     $class = new Tx_Extbase_Reflection_ClassReflection($className);
     $this->reflectedClassNames[$className] = time();
     foreach ($class->getTagsValues() as $tag => $values) {
         if (array_search($tag, $this->ignoredTags) === FALSE) {
             $this->taggedClasses[$tag][] = $className;
             $this->classTagsValues[$className][$tag] = $values;
         }
     }
     foreach ($class->getProperties() as $property) {
         $propertyName = $property->getName();
         $this->classPropertyNames[$className][] = $propertyName;
         foreach ($property->getTagsValues() as $tag => $values) {
             if (array_search($tag, $this->ignoredTags) === FALSE) {
                 $this->propertyTagsValues[$className][$propertyName][$tag] = $values;
             }
         }
     }
     foreach ($class->getMethods() as $method) {
         $methodName = $method->getName();
         foreach ($method->getTagsValues() as $tag => $values) {
             if (array_search($tag, $this->ignoredTags) === FALSE) {
                 $this->methodTagsValues[$className][$methodName][$tag] = $values;
             }
         }
         foreach ($method->getParameters() as $parameterPosition => $parameter) {
             $this->methodParameters[$className][$methodName][$parameter->getName()] = $this->convertParameterReflectionToArray($parameter, $parameterPosition, $method);
         }
     }
     ksort($this->reflectedClassNames);
     $this->dataCacheNeedsUpdate = TRUE;
 }