bachi / typo3-aop
此包已被废弃,不再维护。未建议替代包。
使TYPO3支持面向切面编程的扩展。
dev-master
2019-06-16 00:32 UTC
Requires
- php: >=7.1,<7.3
- goaop/framework: ^2.1
- typo3/cms-core: ^8.7 || ^9.5
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2022-08-16 08:16:20 UTC
README
此扩展允许您在TYPO3中使用面向切面编程。在幕后,我们使用了稳定且快速的goaop框架。
有关更多信息,请参阅goaop文档。
为什么你需要这个?
你是否曾需要扩展扩展或核心本身的功能,但没有任何钩子或信号槽可用?使用此扩展,您可以钩入任何类,无论您的需求是什么。
它提供了更多的灵活性,以找到最适合您案例的解决方案。
安装
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此包的最新稳定版本
$ composer require bachi/typo3-aop:@dev
此命令要求您全局安装Composer,如Composer文档中的安装章节所述。
注意:由于自动加载过程和依赖关系管理的限制,不支持通过TYPO3扩展安装器安装。
如何使用
首先,您需要创建一个Aspect
namespace Acme\Demo\Aspect\LoggingAspect use Go\Aop\Aspect; use Go\Lang\Annotation\Before; final class LoggingAspect implements Aspect { /** * @Before("execution(public Example->*(*))") */ public function beforeMethodExecution(MethodInvocation $invocation) { // do some stuff. } }
请注意,此方面实现了Aspect
接口!
现在我们需要将我们的方面注册到新的容器中
# ext_localconf.php \Baachi\GoAOP\Kernel\TYPO3AspectKernel::registerAspect(\Acme\Demo\Aspect\LoggingAspect::class);
完成!简单吗?
针对生产环境调整
此扩展有一个debug
模式,请确保在生产环境中禁用此选项。
此外,注册一个缓存预热命令。强烈建议在您的部署流程中运行此命令。
$ php -dmemory_limit=-1 vendor/bin/typo3 cache:warmup:aop
此命令会消耗大量内存!