我是CakePHP的新手,我正在尝试使用Go!我的测试应用程序中的AOP。
尽管我遵循指南并导入Go!通过将它添加到我的composer.json,似乎找不到AspectKernel类。
<?php
// app/ApplicationAspectKernel.php
namespace Application;
use Go\Core\AspectKernel;
use Go\Core\AspectContainer;
/**
* Application Aspect Kernel
*/
class ApplicationAspectKernel extends AspectKernel
{
/**
* Configure an AspectContainer with advisors, aspects and pointcuts
*
* @param AspectContainer $container
*
* @return void
*/
protected function configureAop(AspectContainer $container)
{
$container->registerAspect(new MonitorAspect());
}
}
错误:类&#39; Go \ Core \ AspectKernel&#39;没找到
文件:/Applications/XAMPP/xamppfiles/htdocs/test/app/Application/ApplicationAspectKernel.php
如果以前有人解决过这个问题,我很乐意听取您的意见。
这是我的composer.json&#34;要求&#34;值。
"require": {
"php": ">=5.3.0",
"ext-mcrypt": "*",
"goaop/framework": "dev-master"
},
CakePHP似乎是一个非常实用的框架,我希望我可以在那里应用AOP,以消除手动为日志功能添加日志的需要。开始和结束(测量函数的性能)
答案 0 :(得分:0)
看起来你将这个类放在/ Applications / XAMPP / xamppfiles / htdocs / test / app(第一行注释)中并调用命名空间Application,尝试使用App命名空间。
我走了!在我的应用程序上工作。
在/webroot/index.php中将以下内容用于使用声明:
use App\ApplicationAspectKernel;
$aspect = ApplicationAspectKernel::getInstance();
$aspect->init(array(
'debug' => true, // use 'false' for production mode
'cacheDir' => dirname(__DIR__).'/tmp/aop',
'includePaths' => [
dirname(__DIR__) . '/src'
]
));
我要忽略configureAop方法中ApplicationAspectKernel中的@triggers注释:
protected function configureAop(AspectContainer $container) {
// use Doctrine\Common\Annotations\AnnotationReader;
AnnotationReader::addGlobalIgnoredName('triggers');
$container->registerAspect(new CacheAspect());
}