当前位置: 首页>>代码示例>>PHP>>正文


PHP ReflectionService::getClassesContainingMethodsAnnotatedWith方法代码示例

本文整理汇总了PHP中TYPO3\Flow\Reflection\ReflectionService::getClassesContainingMethodsAnnotatedWith方法的典型用法代码示例。如果您正苦于以下问题:PHP ReflectionService::getClassesContainingMethodsAnnotatedWith方法的具体用法?PHP ReflectionService::getClassesContainingMethodsAnnotatedWith怎么用?PHP ReflectionService::getClassesContainingMethodsAnnotatedWith使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TYPO3\Flow\Reflection\ReflectionService的用法示例。


在下文中一共展示了ReflectionService::getClassesContainingMethodsAnnotatedWith方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: reduceTargetClassNames

 /**
  * This method is used to optimize the matching process.
  *
  * @param \TYPO3\Flow\Aop\Builder\ClassNameIndex $classNameIndex
  * @return \TYPO3\Flow\Aop\Builder\ClassNameIndex
  */
 public function reduceTargetClassNames(\TYPO3\Flow\Aop\Builder\ClassNameIndex $classNameIndex)
 {
     $classNames = $this->reflectionService->getClassesContainingMethodsAnnotatedWith($this->annotation);
     $annotatedIndex = new \TYPO3\Flow\Aop\Builder\ClassNameIndex();
     $annotatedIndex->setClassNames($classNames);
     return $classNameIndex->intersect($annotatedIndex);
 }
开发者ID:robertlemke,项目名称:flow-development-collection,代码行数:13,代码来源:PointcutMethodAnnotatedWithFilter.php

示例2: compileStaticMethods

 /**
  * Compile the result of methods marked with CompileStatic into the proxy class
  *
  * @param string $className
  * @param \TYPO3\Flow\Object\Proxy\ProxyClass $proxyClass
  * @return void
  */
 protected function compileStaticMethods($className, $proxyClass)
 {
     if ($this->classesWithCompileStaticAnnotation === null) {
         $this->classesWithCompileStaticAnnotation = array_flip($this->reflectionService->getClassesContainingMethodsAnnotatedWith(\TYPO3\Flow\Annotations\CompileStatic::class));
     }
     if (!isset($this->classesWithCompileStaticAnnotation[$className])) {
         return;
     }
     $methodNames = get_class_methods($className);
     foreach ($methodNames as $methodName) {
         if ($this->reflectionService->isMethodStatic($className, $methodName) && $this->reflectionService->isMethodAnnotatedWith($className, $methodName, \TYPO3\Flow\Annotations\CompileStatic::class)) {
             $compiledMethod = $proxyClass->getMethod($methodName);
             $value = call_user_func(array($className, $methodName), $this->objectManager);
             $compiledResult = var_export($value, true);
             $compiledMethod->setMethodBody('return ' . $compiledResult . ';');
         }
     }
 }
开发者ID:robertlemke,项目名称:flow-development-collection,代码行数:25,代码来源:ProxyClassBuilder.php

示例3: getAffectedClassNames

 /**
  * @param array $classesSelector
  * @return array
  */
 protected function getAffectedClassNames(array $classesSelector)
 {
     if (isset($classesSelector['parentClassName'])) {
         $affectedClassNames = $this->reflectionService->getAllSubClassNamesForClass($classesSelector['parentClassName']);
     } elseif (isset($classesSelector['interface'])) {
         $affectedClassNames = $this->reflectionService->getAllImplementationClassNamesForInterface($classesSelector['interface']);
     } elseif (isset($classesSelector['classesContainingMethodsAnnotatedWith'])) {
         $affectedClassNames = $this->reflectionService->getClassesContainingMethodsAnnotatedWith($classesSelector['classesContainingMethodsAnnotatedWith']);
     } else {
         $affectedClassNames = $this->reflectionService->getAllClassNames();
     }
     foreach ($affectedClassNames as $index => $className) {
         if ($this->reflectionService->isClassAbstract($className) && (!isset($classesSelector['includeAbstractClasses']) || $classesSelector['includeAbstractClasses'] === FALSE)) {
             unset($affectedClassNames[$index]);
         } elseif (isset($classesSelector['classNamePattern']) && preg_match($classesSelector['classNamePattern'], $className) === 0) {
             unset($affectedClassNames[$index]);
         }
     }
     return $affectedClassNames;
 }
开发者ID:neos,项目名称:doctools,代码行数:24,代码来源:ReferenceCommandController.php


注:本文中的TYPO3\Flow\Reflection\ReflectionService::getClassesContainingMethodsAnnotatedWith方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。