使用扩展';s类(yii2应用程序)


Using an extension's class from inside my controller (yii2 application)

我正试图从控制器内部使用一个方法。

这在我的"视图"中工作

use aweber'aweber'aweber_api;
$consumerKey    = "XXXX";
$consumerSecret = "XXXXX";
$aweber = new AWeberAPI($consumerKey, $consumerSecret);

但它在我的控制器中不起作用。

我得到错误

Class 'app'controllers'AWeberAPI' not found

有什么提示吗?

我认为您已将AWeber-API-PHP-库提取到路径AWeber''AWeber''API中。目录结构可以是

$ ls aweber'aweber'aweber_api
aweber.php
aweber_api.php
....

如果您使用composer自动加载类,AWeberAPI位于根命名空间中

use 'AWeberAPI;
$aweber = new AWeberAPI($consumerKey, $consumerSecret);

如果您没有使用composer 自动加载

require_once('aweber_api/aweber_api.php');
$aweber = new AWeberAPI($consumerKey, $consumerSecret);

通常与扩展相关的扩展位于供应商命名空间中。。

尝试

use vendor'aweber'aweber_api;

您有一个打字错误。php文件的名称通常与类的名称相同。所以你的代码应该是:

use aweber'aweber'AWeberAPI;

如果不是,你可以试试:

use aweber'aweber'aweber_api as AWeberAPI;

感谢您的评论。为了修复它,我实际上把这个功能移到了我的"视图"中,而不是放在我的控制器中,它就工作了。

我无法在这里测试答案,所以如果其他人面临同样的问题,我建议尝试其中的一些答案。