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

问题描述 投票:0回答:3

问题

我正在尝试使用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" : "*"
    }
}

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

这是我的控制器

<?php

use PayPal\Rest\ApiContext;

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

        );
        var_dump($api);
    }

}

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

php codeigniter composer-php autoload
3个回答
10
投票

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

$config['composer_autoload'] = TRUE; 

你需要把

$config['composer_autoload'] = FCPATH . 'vendor/autoload.php'; 

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


2
投票

我知道这是一个相当古老的问题但是,我仍然想把我的输入基本上CodeIgniter 3具体3.1.6有问题,当你这样做

 $config['composer_autload'] = TRUE:

然后它将无法工作,并且不会自动加载来自供应商文件夹的文件,现在有两个可能的解决方案,这个解决方案已经由“Jethro Hazelhurst”提到过。

另一个简单的解决方案是在应用程序文件夹中复制composer.json,然后从应用程序文件夹运行composer install,或者将vendor文件夹与composer.json和composer.lock一起移动到应用程序文件夹,然后此TRUE值将正常工作。

谢谢。


0
投票

您可以在命令提示符下使用composer dump-autoload。这将重新生成要包含在项目中的文件列表。

© www.soinside.com 2019 - 2024. All rights reserved.