Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  * @param ParsedReflectionFileNamespace|string $ns
  */
 public function matches($ns)
 {
     $isNamespaceIsObject = $ns === (object) $ns;
     if ($isNamespaceIsObject && !$ns instanceof ParsedReflectionFileNamespace) {
         return false;
     }
     $nsName = $isNamespaceIsObject ? $ns->getName() : $ns;
     return $nsName === $this->nsName || (bool) preg_match("/^(?:{$this->regexp})\$/", $nsName);
 }
Ejemplo n.º 2
0
 /**
  * Returns list of function advices for specific namespace
  *
  * @param ReflectionFileNamespace $namespace
  * @param Aop\PointcutAdvisor $advisor Advisor for class
  * @param string $advisorId Identifier of advisor
  * @param Aop\PointFilter $pointcut Filter for points
  *
  * @return array
  */
 private function getFunctionAdvicesFromAdvisor($namespace, $advisor, $advisorId, $pointcut)
 {
     $functions = array();
     $advices = array();
     if (!$functions) {
         $listOfGlobalFunctions = get_defined_functions();
         foreach ($listOfGlobalFunctions['internal'] as $functionName) {
             $functions[$functionName] = new NamespacedReflectionFunction($functionName, $namespace->getName());
         }
     }
     foreach ($functions as $functionName => $function) {
         if ($pointcut->matches($function)) {
             $advices[AspectContainer::FUNCTION_PREFIX][$functionName][$advisorId] = $advisor->getAdvice();
         }
     }
     return $advices;
 }