Yii 2:从require_once内部使用类

时间:2018-09-04 19:57:28

标签: php yii yii2

我正在使用第三方扩展程序,例如:

(这是我的控制器内部)

2018-09-04 19:42:11 ERROR Utils:91 - uncaught error in thread spark-listener-group-appStatus, stopping SparkContext
java.lang.OutOfMemoryError: GC overhead limit exceeded

但是,这返回的错误是找不到CS_REST_subscribers类。

当类在文件中时,如何正确使用该类。不幸的是,此扩展名较旧,没有命名空间。

1 个答案:

答案 0 :(得分:0)

您需要使用以下命令使用composer进行安装

composer require  "campaignmonitor/createsend-php" "6.0.0"

它使用最简单的方法,即分别自动加载每个类。我们在composer.json文件中定义了要自动加载的类的路径的数组,并且如果您在包目录中看到vendor/campaignmonitor/createsend-php/composer.json文件

"autoload": {
    "classmap": [
        "csrest_administrators.php",
        "csrest_campaigns.php",
        "csrest_clients.php",
        "csrest_general.php",
        "csrest_events.php",
        "csrest_lists.php",
        "csrest_people.php",
        "csrest_segments.php",
        "csrest_subscribers.php",
        "csrest_templates.php",
        "csrest_transactional_classicemail.php",
        "csrest_transactional_smartemail.php",
        "csrest_transactional_timeline.php"

    ]
}

因此您不需要includerequire语句,您可以直接调用所需的任何类,例如在actionview内添加以下行

$authorize_url = CS_REST_General::authorize_url(
    '1122',//'Client ID for your application',
    'http://example.com/redirect-page',//Redirect URI for your application,
    'ViewReports'//The permission level your application requires,
);
print_r($authorize_url);

打印以下内容

https://api.createsend.com/oauth?client_id=1122&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect-page&scope=ViewReports

对于知识库,如果您要使用未使用自动加载器或psr4的第三方代码,则可以通过Yii tutorial