/**
  * @return bool
  */
 private function canBeProcessed(ReflectionClass $reflection)
 {
     if (!$reflection->isMain()) {
         return FALSE;
     }
     if (!$reflection->isDocumented()) {
         return FALSE;
     }
     if (isset($this->processed[$reflection->getName()])) {
         return FALSE;
     }
     return TRUE;
 }
 /**
  * @return array {[ traitName => ReflectionMethod[] ]}
  */
 public function getUsedMethods()
 {
     $usedMethods = [];
     foreach ($this->reflectionClass->getMethods() as $method) {
         if ($method->getDeclaringTraitName() === NULL || $method->getDeclaringTraitName() === $this->reflectionClass->getName()) {
             continue;
         }
         $usedMethods[$method->getDeclaringTraitName()][$method->getName()]['method'] = $method;
         if ($method->getOriginalName() !== NULL && $method->getOriginalName() !== $method->getName()) {
             $usedMethods[$method->getDeclaringTraitName()][$method->getName()]['aliases'][$method->getName()] = $method;
         }
     }
     return $usedMethods;
 }
 /**
  * @return array
  */
 private function sortElements(array $elements, array $allElements, ReflectionClass $reflectionClass)
 {
     if (!empty($elements)) {
         ksort($elements);
         $allElements[$reflectionClass->getName()] = array_values($elements);
     }
     return $allElements;
 }
 /**
  * @return ReflectionClass[]|array
  */
 public function getIndirectImplementersOfInterface(ReflectionClass $reflectionClass)
 {
     $implementers = [];
     foreach ($this->classes as $class) {
         if ($this->isAllowedIndirectImplementer($class, $reflectionClass->getName())) {
             $implementers[] = $class;
         }
     }
     uksort($implementers, 'strcasecmp');
     return $implementers;
 }
 /**
  * Returns an property pretty (docblock compatible) name.
  *
  * @return string
  */
 public function getPrettyName()
 {
     return sprintf('%s::%s()', $this->declaringClass->getName(), $this->name);
 }
Example #6
0
 /**
  * Returns a link to property in class summary file.
  *
  * @param \ApiGen\Reflection\ReflectionProperty $property Property reflection
  * @param \ApiGen\Reflection\ReflectionClass $class Property declaring class
  * @return string
  */
 public function getPropertyUrl(Reflection\ReflectionProperty $property, Reflection\ReflectionClass $class = null)
 {
     $className = null !== $class ? $class->getName() : $property->getDeclaringClassName();
     return $this->getClassUrl($className) . '#' . ($property->isMagic() ? 'm' : '') . '$' . $property->getName();
 }
Example #7
0
 /**
  * Returns a link to class summary file.
  *
  * @param string|\ApiGen\Reflection\ReflectionClass $class Class reflection or name
  * @return string
  */
 public function getClassUrl($class)
 {
     $className = $class instanceof Reflection\ReflectionClass ? $class->getName() : $class;
     return sprintf($this->config->template->templates->main->class->filename, $this->urlize($className));
 }
 /**
  * @return string
  */
 public function createForProperty(ReflectionProperty $property, ReflectionClass $class = NULL)
 {
     $className = $class !== NULL ? $class->getName() : $property->getDeclaringClassName();
     return $this->createForClass($className) . '#' . ($property->isMagic() ? 'm' : '') . '$' . $property->getName();
 }
 /**
  * @return bool
  */
 private function isReservedClass(ReflectionClass $class)
 {
     $reservedClasses = ['stdClass', 'Closure', 'Directory'];
     return in_array($class->getName(), $reservedClasses);
 }