【问题标题】:Laravel 4: loading an old library: how?Laravel 4:加载旧库:如何?
【发布时间】:2013-01-28 22:24:00
【问题描述】:

我有一个旧库 (phpquery),我想将它包含在我的项目中。我已将它放在供应商内部,但它不起作用,因为它不符合 PSR-0 标准。我不希望它为每个请求都加载,所以我没有将require 放在 bootstrap autoload.php 中。

我什至不知道如何获取应用程序的根目录。运行 path() 会给我一个 URL,而不是我想要的。

那我该怎么做呢?

【问题讨论】:

    标签: laravel autoload laravel-4


    【解决方案1】:

    您可以像在 laravel 3 中一样创建一个库目录,并将其包含在您的类加载器中。你可以通过 composer 或 laravel 来实现。

    //composer.json
    "autoload": {
        "classmap": [
            "app/commands",
            "app/libraries",
            "app/database/migrations",
            "app/tests/TestCase.php",
        ]
    },
    
    //app/starts/global.php
    ClassLoader::register(new ClassLoader(array(
        app_path().'/libraries',
    )));
    

    通过 Laravel 自动加载不需要您在每次创建或删除类时运行“composer dumpautoload”。

    更新 - L4 Beta 4

    ClassLoader::addDirectories(array(
        app_path().'/libraries',
    ));
    

    【讨论】:

    • 在按照您的建议进行操作后我得到了这个:致命错误:第 7 行的 ... vendor/autoload.php 中找不到类 'ComposerAutoloaderInit2d7070f81c212e1c659e1f93e987f477'
    • 这似乎是作曲家的问题。尝试再次运行composer dumpautoload,也许artisan clear-compiled 会更好
    • @Blessing 如果我在库中使用命名空间会怎样?这对加载类不起作用。
    猜你喜欢
    • 2013-07-09
    • 2014-12-06
    • 2014-08-13
    • 1970-01-01
    • 2014-05-08
    • 2023-03-26
    • 2013-06-07
    • 2017-04-30
    • 1970-01-01
    相关资源
    最近更新 更多