2013-11-03 18 views
5

Sto tentando di caricare il Simple HTML DOM Parser nel mio progetto Laravel-4. Tuttavia, non riesco a trovare la classe. Sto ottenendo questo errore:Caricamento della libreria esterna in Laravel-4

Class 'Libraries\SimpleHtmlDom\simple_html_dom_node' not found 

ho messo simple_html_dom.php in app\libraries e

namespace Libraries\SimpleHtmlDom; 

nella parte superiore del simple_html_dom.php.

In global.php ho aggiunto la cartella libraries:

ClassLoader::addDirectories(array(

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

)); 

E infine, nel mio controller, sto cercando di creare un'istanza di esso:

$parser = new Libraries\SimpleHtmlDom\simple_html_dom_node; 

Che cosa sto facendo di sbagliato?

risposta

11

specifico per il vostro caso d'uso

A (si spera) di risolvere il problema senza modificare la struttura attuale, si può solo bisogno di correre:

$ composer dump-autoload 

o potrebbe essere necessario aggiungere una sezione autoavviata in composer.json insieme agli altri:

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

e quindi eseguire nuovamente composer dump-autoload.

Packagist (meglio?) Soluzione

Sembra che ci sia un pacchetto di compositore si potrebbero utilizzare invece: https://packagist.org/packages/sunra/php-simple-html-dom-parser

Ciò consente di aggiungere al vostro progetto più semplice:

A. Add dipendenza da composer.json (tramite questa chiamata CLI o aggiungendo manualmente al file compositore.json):

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

B.Use new package nel codice

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