5

プロジェクトにSimple HTML DOM ParserをロードしようとしていLaravel-4ます。しかし、クラスを見つけることができません。このエラーが発生しています:

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;

私は何を間違っていますか?

4

1 に答える 1

12

ユースケースに固有

(うまくいけば) 現在の構造を変更せずに問題を解決するには、次のコマンドを実行する必要があるかもしれません:

$ composer dump-autoload

composer.jsonまたは、他のセクションと一緒にautoloaded セクションを追加する必要があるかもしれません:

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

そして、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"

B. コードで新しいパッケージを使用する

$dom = HtmlDomParser::file_get_html( $file_name );
于 2013-11-03T15:26:14.947 に答える