2013-11-03 16 views
5

Tôi đang cố gắng tải Simple HTML DOM Parser trong dự án Laravel-4 của tôi. Tuy nhiên, tôi không thể tìm được lớp học. Tôi nhận được lỗi này:Đang tải thư viện bên ngoài vào Laravel-4

Class 'Libraries\SimpleHtmlDom\simple_html_dom_node' not found 

Tôi đã đặt simple_html_dom.php trong app\libraries

namespace Libraries\SimpleHtmlDom; 

trong top của simple_html_dom.php.

Trong global.php Tôi đã thêm libraries thư mục:

ClassLoader::addDirectories(array(

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

)); 

Và cuối cùng, trong bộ điều khiển của tôi, tôi đang cố gắng để nhanh chóng nó:

$parser = new Libraries\SimpleHtmlDom\simple_html_dom_node; 

Tôi đang làm gì sai?

Trả lời

11

cụ thể cho trường hợp sử dụng của bạn

Để (hy vọng) giải quyết vấn đề của bạn mà không thay đổi cấu trúc hiện tại của bạn, bạn có thể chỉ cần chạy:

$ composer dump-autoload 

Hoặc bạn có thể cần thêm một phần tự động nạp trong composer.json cùng với những người khác:

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

Và sau đó chạy composer dump-autoload một lần nữa.

Packagist (tốt hơn?) Giải pháp

Dường như có một gói Composer bạn có thể được sử dụng thay vì: https://packagist.org/packages/sunra/php-simple-html-dom-parser

Điều này làm cho thêm nó vào dự án của bạn dễ dàng hơn:

A. Add phụ thuộc vào composer.json (qua cuộc gọi CLI này hoặc bằng cách thêm thủ công vào tệp composer.json của bạn):

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

B.Use new package trong mã của bạn

$dom = HtmlDomParser::file_get_html($file_name); 
Các vấn đề liên quan