问题标签 [goaop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
619 浏览

php - 如何设置 Go!AOP PHP 和 Yii 1.1.13 让面向方面的编程工作?

我正在尝试设置 Go!AOP Php 与我的 Yii 框架应用程序。

我做了以下事情:

1-安装 Go! 通过将以下行添加到我们的 composer.json 来使用 Composer 进行 AOP Php。

2-添加了这样的应用程序内核

3-还添加了一个 TestMonitorAspect。

因为他的 yii-aspect github 项目集成示例是针对 Yii 2.0 的,所以我做了我自己版本的 ApplicationAspectKernel 的 index.php 初始化。

我所做的是在 Yii 应用程序的 onBeginRequest 上初始化 ApplicationAspectKernel,然后在运行应用程序之前如下所示:

我们无法让任何方面发挥作用。

有没有人对如何解决这个问题有任何想法?非常感谢任何帮助或指导。谢谢!

我们咨询过的资源有:

  1. http://go.aopphp.com/docs/
  2. https://github.com/lisachenko/go-aop-php
  3. https://github.com/lisachenko/yii-aspect
  4. http://net.tutsplus.com/tutorials/php/aspect-oriented-programming-in-php-with-go/
0 投票
1 回答
843 浏览

php - GO的问题!面向方面的框架

如果有人使用 GO! 框架,你能帮帮我吗?我在 php 5.3.13 上安装框架。演示示例正在运行。但我自己的例子不起作用。Aspect(method beforeMethodExecution) 未执行。

这是我的代码。

主文件:

带有测试类的文件:

}

带有方面的文件:

0 投票
0 回答
144 浏览

php - 怎么去!AOP PHP 和 PHP Deal 在同一命名空间中使用给定注释覆盖一个类?

在阅读有关按合同设计的内容时,我遇到了 php-deal。现在,它的演示代码如下所示:

该类Demo\Account如下所示:

注释是重要的部分,因为它们验证并确保注释中的合同得到执行。

像这样调用类:

按预期工作。然而,像这样调用类:

引发关于合同未执行的异常。

但是,如果我这样调用类:

合同执行停止工作。我的问题是,文件如何aspect_bootstrap.php覆盖预定义的 PHP 类以允许解析和执行注释,以及如何在不调用整个 Go AOP 框架的情况下做到这一点?

Github repo for PHP-Deal with demo

0 投票
1 回答
289 浏览

php - CakePHP 中的面向切面编程

我是 CakePHP 的新手,我正在尝试使用 Go!我的测试应用程序中的 AOP。

尽管我按照指南并导入了 Go!通过将其添加到我的 composer.json 中,似乎找不到 AspectKernel 类。

错误:找不到类“Go\Core\AspectKernel”
文件:/Applications/XAMPP/xamppfiles/htdocs/test/app/Application/ApplicationAspectKernel.php

如果有人以前解决过这个问题,我很想听听你的意见。

这是我的 composer.json “要求”值。

CakePHP 似乎是一个非常实用的框架,我希望我可以在那里应用 AOP 来消除手动为函数的开始和结束放置日志的需要(以测量函数的性能)

0 投票
0 回答
423 浏览

php - Go AOP 没有抓住我的方面

我正在尝试使用 GO AOP 来允许我在我正在处理的 PHP 项目中使用方面。我使用 composer 来安装 goaop/framework。我已经为我的方面编写了如下文件。我知道 CalendarController 运行是因为其中一个函数有一个我可以看到的回声。你知道为什么这不起作用吗?

索引.php

MonitorAspect.php

applicationAspectKernel.php 命名空间 App\Http;

编辑:修复了@Before 语句。

0 投票
1 回答
306 浏览

php - 未找到方面模拟“Go\ParserReflection\ReflectionFile”

我正在尝试将方面模拟与代码接收测试一起使用。

从他们的文档中不清楚如何配置。

https://github.com/Codeception/AspectMock

将 AspectMock\Kernel 包含到 tests/_bootstrap.php 中。

我没有这样的文件。我应该创建它吗?我应该在哪里包含它?

我的codeception目录结构是:

测试/代码接收/验收。

我在 test/codeception/acceptance 中有文件 SummaryCest.php。

由于我没有 _bootstrap.php 文件,我决定在 SummaryCest 中尝试 - 在声明一个类之前:

我不知道我真的需要排除供应商目录,但我看到了这样的建议。如果这是强制性的,它可能应该写在我没有看到的自述文件中。

在 includePaths 中,我的所有项目文件都应该可见。

我在 SummaryCest.php 中有函数

and when I run test

I get message

Can you explain me how to configure this?

Also I saw in readme

but test is not even found. So I tried to use \AspectMock\Test which is at least found.

Notice that the error is throw before even running my test function. When I tried running before class declaration

it already gives same error.

0 投票
1 回答
904 浏览

php - 不需要任何 PECL 扩展的纯 PHP 中的 AOP(开始!) - 如何?

有一个框架叫Go! 面向方面的 PHP 框架

它是用纯 PHP 制作的,不需要任何 PECL 扩展和 DI 容器即可工作。

更重要的是可以与任何现有的 PHP 框架和库集成(有或没有额外的配置)。

并且没有切入点的运行时检查,没有运行时注释解析,没有 eval 和 __call 方法,没有慢速代理和 call_user_func_array()。快速引导过程(2-20 毫秒)和建议调用。

所以我印象非常深刻,但我想知道的是,这实际上是如何工作的?

我在这里列出的这些要点...

我查看了 github 和官方网站以及其他一些文章,但找不到任何关于它如何工作的具体信息(一般和具体)。

我很想知道这是如何工作的?它是如何实施的?

0 投票
1 回答
507 浏览

goaop - GoAOP 框架,无法让简单的 Aspect 工作

我一直在尝试使用GoAOP库,但从未成功地让它工作。我已经多次阅读文档并复制了示例,但甚至无法让它们工作。我现在想要实现的只是一个简单的方面。

我有几个文件如下:

应用程序/ApplicationAspectKernel.php

初始化文件

方面/MonitorAspect.php

应用程序/Example.php

当我运行php init.php它时它会运行,但只是在没有 MonitorAspect 输出的情况下打印。我不知道我是否在@Before(我尝试了几种变体)中定义了错误的切入点,或者我只是对这段代码的工作方式有一个根本的误解。

任何帮助我指出正确方向的帮助将不胜感激。

0 投票
0 回答
590 浏览

php - Lumen - 在服务提供者中注册类

我在 AopServiceProvider 中注册了一个 Aspect 类。但是,它似乎不起作用。

这是我的代码:

现在即使我有这样的代码:

它仍然没有显示任何错误。

该服务提供商已注册为:

这是正常的还是有什么解决办法?

0 投票
0 回答
151 浏览

symfony4 - 使用 Symfony4、codeception 和 AspectMock 模拟错误

我遇到了麻烦:我需要模拟一些对象来使用 Sf4.1 测试我的登录 WS。我已经安装了 codeception 和 AspectMock。不幸的是,我一个接一个地错误配置aspectmock。

首先,我试图简单地嘲笑我的经理:

我的登录中心:

登录助手:

我的路线控制器:

有了这个,我在测试执行上有一个错误:

此外,我已经或多或少地为我的问题添加了这个线程:AspectMock GitHub

所以我在我的测试/目录下设置了一个引导文件,如下所示:

但是现在,我总是这个错误:

你能帮我设法模拟我的测试吗?

预先感谢,