Yii 2:在require_once中使用一个类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii 2:在require_once中使用一个类相关的知识,希望对你有一定的参考价值。

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

(这是在我的控制器内)

require_once Yii::$app->basePath.'/vendor/campaignmonitor/createsend-php/csrest_subscribers.php';

$wrap = new CS_REST_Subscribers($list_id, $auth);

但是,这会返回一个错误,即找不到CS_REST_subscribers类。

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

答案

您需要使用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

以上是关于Yii 2:在require_once中使用一个类的主要内容,如果未能解决你的问题,请参考以下文章

在yii php中使用“Use”关键字

yii 和 zend studio 集成

PHP - 类构造中的Require_once

[Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]

如何在不使用require_once的情况下自动加载和调用独立的PHP类?

yii2框架添加扩展类