2013-11-03 13 views
5

Próbuję załadować Simple HTML DOM Parser w moim projekcie Laravel-4. Jednak nie mogę go znaleźć, aby znaleźć klasę. Dostaję taki błąd:Ładowanie zewnętrznej biblioteki w Laravel-4

Class 'Libraries\SimpleHtmlDom\simple_html_dom_node' not found 

Włożyłam simple_html_dom.php w app\libraries i

namespace Libraries\SimpleHtmlDom; 

w górę simple_html_dom.php.

W global.php Dodałem folder libraries:

ClassLoader::addDirectories(array(

    app_path().'/commands', 
    app_path().'/controllers', 
    app_path().'/models', 
    app_path().'/database/seeds', 
    app_path().'/libraries', 

)); 

i wreszcie, w moim kontrolera, próbuję go instancję:

$parser = new Libraries\SimpleHtmlDom\simple_html_dom_node; 

Co robię źle?

Odpowiedz

11

specyficzne dla danego przypadku użycia

do (miejmy nadzieję) rozwiązać problem bez zmiany obecnej struktury, może po prostu trzeba uruchomić:

$ composer dump-autoload 

Albo może trzeba dodać ładowane automatycznie punkt w composer.json wraz z innymi:

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

A następnie uruchomić composer dump-autoload ponownie.

Packagist (lepsza?) Rozwiązanie

Wygląda na to, że jest to pakiet Kompozytor można używać zamiast: https://packagist.org/packages/sunra/php-simple-html-dom-parser

To sprawia, że ​​dodanie go do swojego projektu łatwiejsze:

A. Dodaj zależność od composer.json (przez to połączenie CLI lub przez ręczne dodanie do pliku composer.json):

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

B.Use new package w kodzie

$dom = HtmlDomParser::file_get_html($file_name); 
Powiązane problemy