/** * Returns a PointcutDefinition or false if none found. * * @param string $pointcut Pointcut id or name. * * @return PointcutDefinition */ public function getPointcut($pointcut) { if (isset($this->_pointcuts[$pointcut])) { return $this->_pointcuts[$pointcut]; } else { $result = false; $value = $this->_cache->fetch('AspectManagerPointcut' . $pointcut, $result); if ($result === true) { $this->_pointcuts[$pointcut] = $value; return $value; } else { foreach ($this->_pointcutProviders as $provider) { $value = $provider->getPointcut($pointcut); if ($value !== false) { $this->setPointcut($value); return $value; } } } } return false; }
/** * Returns a bean. * * @param string $name Bean name. * * @throws BeanFactoryException * @return object */ public function getBean($name) { $ret = false; $beanDefinition = $this->getBeanDefinition($name); $beanName = $name . '.bean'; if ($beanDefinition->isAbstract()) { throw new BeanFactoryException("Cant instantiate abstract bean: {$name}"); } if ($beanDefinition->isPrototype()) { $ret = $this->_createBean($beanDefinition); } else { if ($beanDefinition->isSingleton()) { if (isset($this->_beans[$beanName])) { $ret = $this->_beans[$beanName]; } else { $ret = $this->_beanCache->fetch($beanName, $result); if (!$ret) { $ret = $this->_createBean($beanDefinition); } $this->_beans[$beanName] = $ret; } } } return $ret; }