自动加载-致命错误:未捕获错误:类

时间:2018-08-16 06:13:40

标签: php composer-php

我正在使用PHP 7.1,并且试图运行以下软件包BladeOne

在我的php文件中,我有以下代码:

<?php
require "vendor/autoload.php";

use eftec\bladeone;

$views = __DIR__ . '/views';
$cache = __DIR__ . '/cache';
define("BLADEONE_MODE", 1); // (optional) 1=forced (test),2=run fast (production), 0=automatic, default value.
$blade = new bladeone\BladeOne($views,$cache); // HERE I GET AN ERROR

我收到以下错误:

Fatal error: Uncaught Error: Class 'eftec\bladeone\BladeOne' not found in /home/ubuntu/workspace/blade-autoload.php:9
Stack trace:
#0 {main}
  thrown in /home/ubuntu/workspace/blade-autoload.php on line 9

我的composer.json文件如下所示:

{
    "name": "blade-one",
    "authors": [{
        "name": "test",
        "email": "test@test.com"
    }],
    "require": {
        "eftec/bladeone": "^3.0"
        }
}

我使用composer updatecomposer dump-autoload安装软件包,然后重新生成自动加载文件。但是,这不起作用。

有人建议我在做什么错吗?

感谢您的答复!

1 个答案:

答案 0 :(得分:2)

看v3.0中的自动加载器定义:https://github.com/EFTEC/BladeOne/blob/3.0/composer.json-这看起来是错误的,它只是eftec\\,应该是eftec\\bladeone\\。似乎已在当前master中修复。

此问题看起来很相关:https://github.com/EFTEC/BladeOne/issues/26

历史表明他有些挣扎:https://github.com/EFTEC/BladeOne/commits/master/composer.json

因此,您应确保获得固定/最新版本。