如何在Yii2中的供应商库中要求尚未包含的文件或类?

时间:2015-07-11 04:33:44

标签: php composer-php yii2 google-adwords

我有这个Yii2看不到的课。所有其他课程都有效。我尝试了以下内容。评论的行不起作用。

// use app\vendor\googleads\googleads-php-lib\src\Google\Api\Ads\Common\Util\ErrorUtils;
// require_once UTIL_PATH . '/ErrorUtils.php';
require_once('../vendor/googleads/googleads-php-lib/src/Google/Api/Ads/Common/Util/ErrorUtils.php');
use \ErrorUtils;

这样可行,但看起来不对。它也不能在我需要的命令模式下工作。

$ yii cron
PHP Warning:  Uncaught exception 'yii\base\ErrorException' with message 'require_once(../vendor/googleads/googleads-php-lib/src/Google/Api/Ads/Common/Util/ErrorUtils.php): failed to open stream: No such file or directory' in /cygdrive/c/Users/Chloe/workspace/xxx/models/GoogleAdWords.php:36

如何在Yii2中要求或使用此课程?

2 个答案:

答案 0 :(得分:1)

Fisrt addto composer(shell命令):

$ composer require googleads/googleads-php-lib

然后简单地使用te class:

\ErrorUtils::GetApiErrors($var);

请注意,googleads不使用名称空间,因此它是“\”NS

答案 1 :(得分:0)

您使用的库不为其类提供psr-4自动加载器设置。您需要为要加载的类添加autoload classmap到项目根目录中的 composer.json ,如下所示:

"autoload": {
    "classmap": [
      "vendor/googleads/googleads-php-lib/src/Google/Api/Ads/Common/Lib",
      "vendor/googleads/googleads-php-lib/src/Google/Api/Ads/Common/Util"
    ]
},

然后在您的控制台中: composer dump-autoload

这将更新作曲家自动加载器。之后,您将能够使用:\ErrorUtils::GetSourceOperationIndex($error)

调用库类