【问题标题】:error 'class not found ' when adding Fpdf/Fpdi classes to laravel using composer使用 Composer 将 Fpdf/Fpdi 类添加到 laravel 时出现错误“找不到类”
【发布时间】:2014-01-26 16:05:45
【问题描述】:

我正在尝试添加以下两个类:

https://packagist.org/packages/itbz/fpdi
https://packagist.org/packages/itbz/fpdf

我已将它们包含在我的 composer.json 文件中:

"require-dev": {
        "itbz/fpdi": "dev-master",
        "itbz/fpdf": "1.7.2"
    }

当我尝试在我的 app/config/app.php 文件中引用它们时:

'providers' => array (
    .....
    'itbz\fpdf',
    'itbz\fpdi',
),

'aliases' => array (
    .....
    'Fpdf'            => 'itbz\fpdf\Facades\Fpdf',
    'Fpdi'            => 'itbz\fpdi\Facades\Fpdi',

),

当我为两者运行 composer install 时,我得到一个“找不到类”错误。

composer.json 中包含require-dev 信息之后,我已经完成了composer update,所以我相信错误在于我在app/config/app.php 中引用了两个类。我不知道如何引用它们,所以如果有人能够提供帮助,那就太好了。

【问题讨论】:

    标签: php laravel-4 composer-php fpdf fpdi


    【解决方案1】:

    您是否对自动加载进行了重建?

    composer dump-autoload
    

    完成后,我相信您应该可以先使用没有use的类。

    编辑: 我不知道这些包,但我不确定它们是否包含您提到的 Facade 类。 Facades 是 Laravel 4 特有的。

    我相信如果您删除别名,那么这应该可以正常工作:

    'Fpdf'            => 'itbz\fpdf\Facades\Fpdf',
    'Fpdi'            => 'itbz\fpdi\Facades\Fpdi',
    

    如果你想在你的应用中使用这些类,你会说:

    $fpdi = new \fpdi\FPDI();
    $fpdf = new \fpdf\FPDF();
    

    或类似的东西。

    【讨论】:

    • 它会重建类自动加载器,这样当您在应用程序中使用其中一个类时,您不必先加载它。这就是您将包添加到 providers 数组时所做的事情。您正在使它们成为 Laravel 自动加载的一部分。但是当你这样做时你必须运行 `composer dump-autload' 以便使用添加的新包重新构建 autloader。
    • 哦,我以前试用过的软件包 (stackoverflow.com/questions/19319198/install-fpdf-on-laravel-4) 从来不需要这样做。我也没有在 composer.json 的“autoload”索引中包含这两个类,它是我创建的“require-dev”
    • 查看我上面的编辑。这些错误可能与您的别名类不存在有关
    • 是的,你是对的,我不需要将这两个类添加到提供程序和别名数组中,只需要命名它们。我的印象是你必须这样做?如果我想为该类创建一个别名,是否不需要像“\fpdi\FPDI()”那样调用该类?谢谢你:)
    • 在 Laravel 中,您将类添加到 provider 数组中,以便您可以利用 Laravel 配置的自动加载器。如果您已经在composer.jsonautoload 部分(例如psr-0)中以其他方式自动加载类,则不需要它。至于alias 数组,你仍然可以使用 Laravel,我相信类似:'fpdi' => 'fpdi\FPDI',
    猜你喜欢
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 2018-12-28
    • 2016-03-22
    • 2018-05-27
    相关资源
    最近更新 更多