编写器故障排除:不使用CodeIgniter 3自动加载的类

Jet*_*rst 0 php codeigniter autoload composer-php

问题

我正在尝试使用PayPal Checkout REST SDK,它需要PayPal库通过composer自动加载.我已经完成了在CodeIgniter 3中启用Composer的步骤,但是当我转到我自动加载PayPal\Rest\ApiContext类的控制器时,我收到以下错误:

致命错误:在第15行的C:\ xampp\htdocs\php\toucan-talk\App\modules\paypal\controllers\Paypal.php中找不到类'PayPal\Rest\ApiContext'

到目前为止我有什么

这是我的composer.json文件

{
    "require": {
        "paypal/rest-api-sdk-php" : "*"
    }
}
Run Code Online (Sandbox Code Playgroud)

$config['composer_autoload'] = TRUE;在config.php文件中设置了.

这是我的控制器

<?php

use PayPal\Rest\ApiContext;

class Paypal extends MX_Controller
{
    public function __construct()
    {
        $api = new ApiContext(

        );
        var_dump($api);
    }

}
Run Code Online (Sandbox Code Playgroud)

如何对composer及其自动加载器进行故障排除,以便确定自动加载进程失败的位置.

Jet*_*rst 12

那么这里是解决方案:在config.php而不是设置...

$config['composer_autoload'] = TRUE; 
Run Code Online (Sandbox Code Playgroud)

你需要把

$config['composer_autoload'] = FCPATH . 'vendor/autoload.php'; 
Run Code Online (Sandbox Code Playgroud)

但是我仍然不确定为什么这与原始文件建议相反.有点头疼真的.

  • 非常感谢您的回答,它对我很有帮助。显然,如果您将供应商文件夹安装在/ application / vendor中,则它可以与composer_autoload = TRUE一起使用,但是例如,如果将其放置在根文件夹中,则它需要完整路径:) (2认同)