在Laravel-4中加载外部库

Pat*_*eck 5 php laravel laravel-4

我正在尝试在我的项目中加载Simple HTML DOM ParserLaravel-4.但是,我无法找到它.我收到此错误:

Class 'Libraries\SimpleHtmlDom\simple_html_dom_node' not found
Run Code Online (Sandbox Code Playgroud)

我已经把simple_html_dom.phpapp\libraries

namespace Libraries\SimpleHtmlDom;
Run Code Online (Sandbox Code Playgroud)

在顶部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',

));
Run Code Online (Sandbox Code Playgroud)

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

$parser = new Libraries\SimpleHtmlDom\simple_html_dom_node;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

fid*_*per 12

具体到您的用例

为了(希望)解决您的问题而不改变您当前的结构,您可能只需要运行:

$ composer dump-autoload
Run Code Online (Sandbox Code Playgroud)

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

    "autoload": {
            "classmap": [
                    "app/commands",
                    "app/controllers",
                    "app/models",
                    "app/database/migrations",
                    "app/database/seeds",
                    "app/tests/TestCase.php",
                    "app/libraries"
            ]
    },
Run Code Online (Sandbox Code Playgroud)

然后又跑composer dump-autoload了.

Packagist(更好?)解决方案

看起来你可以使用的是Composer包: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"
Run Code Online (Sandbox Code Playgroud)

B. 在代码中使用新包

$dom = HtmlDomParser::file_get_html( $file_name );
Run Code Online (Sandbox Code Playgroud)