bachi/typo3-aop

此包已被废弃,不再维护。未建议替代包。

使TYPO3支持面向切面编程的扩展。

安装: 1

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 1

分支: 0

开放性问题: 0

类型:typo3-cms-extension

dev-master 2019-06-16 00:32 UTC

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

此命令会消耗大量内存!