在 Laravel-4 中加载外部库


Loading external library in Laravel-4

我正在尝试在我的Laravel-4项目中加载简单的HTML DOM解析器。但是,我无法找到类。我收到此错误:

Class 'Libraries'SimpleHtmlDom'simple_html_dom_node' not found

我已经把simple_html_dom.php放在app'libraries

namespace Libraries'SimpleHtmlDom;

simple_html_dom.php的顶部.

global.php中,我添加了libraries文件夹:

ClassLoader::addDirectories(array(
    app_path().'/commands',
    app_path().'/controllers',
    app_path().'/models',
    app_path().'/database/seeds',
    app_path().'/libraries',
));

最后,在我的控制器中,我正在尝试实例化它:

$parser = new Libraries'SimpleHtmlDom'simple_html_dom_node;

我做错了什么?

特定于您的用例

要(希望)在不更改当前结构的情况下解决问题,您可能只需要运行:

$ composer dump-autoload

或者,您可能需要在composer.json中添加自动加载的部分以及其他部分:

    "autoload": {
            "classmap": [
                    "app/commands",
                    "app/controllers",
                    "app/models",
                    "app/database/migrations",
                    "app/database/seeds",
                    "app/tests/TestCase.php",
                    "app/libraries"
            ]
    },

然后再次运行composer dump-autoload

包装师(更好?溶液

看起来你可以使用一个作曲家包:https://packagist.org/packages/sunra/php-simple-html-dom-parser

这样可以更轻松地将其添加到项目中:

A. 将依赖项添加到composer.json(通过此 CLI 调用或手动添加到 composer.json 文件):

# Run this command:
$ composer require "sunra/php-simple-html-dom-parser": "1.5.0.*@dev"

B. 在代码中使用新包

$dom = HtmlDomParser::file_get_html( $file_name );