Php 使用扩展名';控制器内部的s类(yii2应用程序)

Php 使用扩展名';控制器内部的s类(yii2应用程序),php,yii2,Php,Yii2,我正在尝试从控制器内部使用一种方法 这在我的“视图”中起作用 但它在我的控制器中不起作用 我得到了错误 Class 'app\controllers\AWeberAPI' not found 有什么提示吗 我认为您已将AWeber API PHP库提取到路径AWeber\AWeber\AWeber\u API。目录结构可以是 $ ls aweber\aweber\aweber_api aweber.php aweber_api.php .... 如果使用composer自动加载类,则AWe

我正在尝试从控制器内部使用一种方法

这在我的“视图”中起作用

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

我得到了错误

Class 'app\controllers\AWeberAPI' not found

有什么提示吗

我认为您已将AWeber API PHP库提取到路径AWeber\AWeber\AWeber\u 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;

谢谢大家的评论。为了修复它,我实际上将这个功能移动到了我的“视图”中,而不是将它放在我的控制器中,并且它工作了

我无法测试这里的回答,因此如果其他人面临同样的问题,我建议尝试一下这些答案

use aweber\aweber\aweber_api as AWeberAPI;