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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写器故障排除:不使用CodeIgniter 3自动加载的类相关的知识,希望对你有一定的参考价值。

问题

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

致命错误:在第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 PayPalRestApiContext;

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

        );
        var_dump($api);
    }

}

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

答案

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

$config['composer_autoload'] = TRUE; 

你需要把

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

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

另一答案

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

 $config['composer_autload'] = TRUE:

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

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

谢谢。

另一答案

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

以上是关于编写器故障排除:不使用CodeIgniter 3自动加载的类的主要内容,如果未能解决你的问题,请参考以下文章

如何在多写入器情况下对文件支持的共享内存中的大页进行故障排除

iPhone 应用程序加载器故障排除

HikariCP 线程没有被释放 - 如何排除故障?

电脑故障排除

Windows 10-OpenGL的故障排除代码(带有GLFW):无效的参数

Linux常见的系统故障排除