Пример #1
0
 /**
  * @return string
  */
 protected function parseDeprecationNote()
 {
     if ($this->classReflection->isTaggedWith('deprecated')) {
         return implode(', ', $this->classReflection->getTagValues('deprecated'));
     } else {
         return '';
     }
 }
 /**
  * Generate the XML Schema for a given class name.
  *
  * @param string $className Class name to generate the schema for.
  * @param string $viewHelperNamespace Namespace prefix. Used to split off the first parts of the class name.
  * @param \SimpleXMLElement $xmlRootNode XML root node where the xsd:element is appended.
  * @return void
  */
 protected function generateXmlForClassName($className, $viewHelperNamespace, \SimpleXMLElement $xmlRootNode)
 {
     $reflectionClass = new ClassReflection($className);
     if (!$reflectionClass->isSubclassOf($this->abstractViewHelperReflectionClass)) {
         return;
     }
     $tagName = $this->getTagNameForClass($className, $viewHelperNamespace);
     $xsdElement = $xmlRootNode->addChild('xsd:element');
     $xsdElement['name'] = $tagName;
     $this->docCommentParser->parseDocComment($reflectionClass->getDocComment());
     $this->addDocumentation($this->docCommentParser->getDescription(), $xsdElement);
     $xsdComplexType = $xsdElement->addChild('xsd:complexType');
     $xsdComplexType['mixed'] = 'true';
     $xsdSequence = $xsdComplexType->addChild('xsd:sequence');
     $xsdAny = $xsdSequence->addChild('xsd:any');
     $xsdAny['minOccurs'] = '0';
     $xsdAny['maxOccurs'] = 'unbounded';
     $this->addAttributes($className, $xsdComplexType);
 }
Пример #3
0
 private function getGetterMethodsForClass($className)
 {
     if (isset($this->getterMethodsForClass[$className])) {
         return $this->getterMethodsForClass[$className];
     }
     $class = new ClassReflection($className);
     $this->getterMethodsForClass[$className] = [];
     foreach ($class->getMethods() as $method) {
         /** @var MethodReflection $method */
         $name = $method->getName();
         $key = NULL;
         if (substr($name, 0, 3) === 'get') {
             $key = substr($name, 3);
         } elseif (substr($name, 0, 2) === 'is') {
             $key = substr($name, 2);
         }
         if ($key !== NULL && $method->getNumberOfRequiredParameters() === 0) {
             $this->getterMethodsForClass[$className][lcfirst($key)] = $name;
         }
     }
     return $this->getterMethodsForClass[$className];
 }
 /**
  * Finds all parent classes of the given class
  *
  * @param ClassReflection $class The class to reflect
  * @param array $parentClasses Array of parent classes
  * @return array<ClassReflection>
  */
 protected function getParentClasses(ClassReflection $class, array $parentClasses = [])
 {
     $parentClass = $class->getParentClass();
     if ($parentClass !== false) {
         $parentClasses[] = $parentClass;
         $parentClasses = $this->getParentClasses($parentClass, $parentClasses);
     }
     return $parentClasses;
 }
 /**
  * @test
  */
 public function proxiedMethodsDoContainAnnotationsOnlyOnce()
 {
     $class = new ClassReflection(\TYPO3\Flow\Tests\Functional\Object\Fixtures\PrototypeClassA::class);
     $method = $class->getMethod('setSomeProperty');
     $this->assertEquals(array('autoStart=true'), $method->getTagValues('session'));
 }
Пример #6
0
 /**
  * @return ClassReflection
  */
 protected function getCommandReflection()
 {
     if ($this->commandReflection === NULL) {
         $commandReflection = new ClassReflection($this->controllerCommandName);
         $this->commandReflection = $commandReflection->getParentClass();
     }
     return $this->commandReflection;
 }
 /**
  * @test
  */
 public function proxiedFinalClassesAreStillFinal()
 {
     $reflectionClass = new ClassReflection(FinalClassWithDependencies::class);
     $this->assertTrue($reflectionClass->isFinal());
 }