2016-04-01 11 views
5

Tôi đang cố gắng chạy mã từ CLI như đã nói trong tài liệu CI, nhưng vì một số lý do, có thể do sử dụng phần mở rộng HMVC, nó sẽ không nhập bộ điều khiển được chỉ định .Codeigniter HMVC từ CLI: không nhập bộ điều khiển

Tôi không tìm thấy tài liệu bổ sung về việc thực hiện CLI trong trang web mở rộng HMVC.

Có ai biết cách giải quyết vấn đề này không?

Mã ở đây:

/** 
* application/controllers/Cron.php 
* This is just a wrapper controller to use an HMVC module using the basic CLI syntax for CI 
* 
*/ 
class Cron extends MX_Controller 
{ 

    public function generatepdfs($start_date = null, $end_date = null) 
    {  
      echo 'Not reached'; exit; 

      $this->load->module('facturation/documentscontroller'); 

      $this->documentoscontroller->generatepdfs($start_date, $end_date); 
    } 
} 

Không có vấn đề nếu tôi chạy này từ gốc tài liệu:

php index.php cron generatepdfs 

hay này:

/usr/bin/php -f /home/user/public_html/index.php cron generatepdfs 

Nó sẽ không hiển thị 'Không đạt '.

Tôi có thể chạy nó từ trình duyệt hay không.

Đây là một số các lỗi đầu ra ra cửa sổ Console:

Không thể xác định vị trí các lớp học quy định: Session.php

Tôi có một thư viện MY_Session phiên overriden trong application/thư viện/phiên/MY_Session .php hoạt động hoàn hảo trong trình duyệt. Nếu tôi di chuyển tệp này một thư mục trở lên thì lỗi này sẽ không hiển thị lại trong bảng điều khiển, nhưng nó sẽ không hoạt động trong trình duyệt. Nó được tự động tải bằng cách này.

Giải pháp cho điều này tôi không thích chút nào: sao chép cùng một tệp ở cả hai vị trí.

lỗi Next:

PHP Fatal error: Class 'CI_Preferencias' không tìm thấy trong /home/mysite/public_html/system/core/Common.php trên đường dây 196

Tôi có một thư viện tùy chỉnh được gọi là Preferencias, cũng được tự động tải, trong ứng dụng/thư viện/Preferencias.php

Một lần nữa, điều này hoạt động hoàn hảo trong trình duyệt. Tuy nhiên, từ CLI nó dường như tìm kiếm một thư viện CI_Preferencias, mà không tồn tại. Nếu tôi đổi tên nó thành CI_Preferencias, và tự động tải "CI_Preferencias", CI sẽ tìm kiếm một lớp gọi là CI_CI_Preferencias từ CLI.

Tôi không chắc chắn nếu tôi thiếu một cái gì đó, hoặc có một lỗi thực sự trong CI, hoặc mô-đun HMVC là rối tung với nó.

Có ai có thể giúp tôi không ?? Điều này khiến tôi phát điên vì tôi phải sử dụng các hành động CLI được lập lịch từ cronjobs và tôi cảm thấy hoàn toàn bị mất.

+0

Tôi nghĩ rằng bởi vì bạn có HMVC trong bộ điều khiển ứng dụng và không có trong một module 'application/modules/your_module_name/controllers/Cron.php' – user4419336

+0

@ wolfgang1983: cú pháp CLI cho CodeIgniter là gì nếu tôi có bộ điều khiển được đặt trong mô-đun? Tôi đã thử mà không thành công. Dù sao, bộ điều khiển bên ngoài mô-đun, ở vị trí ban đầu của chúng, vẫn nên hoạt động bằng cách sử dụng phần mở rộng HMVC, vì nó xảy ra khi chạy qua máy chủ web. –

+0

Người nhận xét ở trên là tôi, với tài khoản cá nhân của tôi (không phải tài khoản tôi sử dụng tại nơi làm việc) – user3514092

Trả lời

0

Nếu bạn đã thêm subclass_prefix vào tệp cấu hình dưới dạng "$config['subclass_prefix'] = 'MY_';". Hãy thử MY_Preferencias.php thay vì Preferencias.php

Nếu bạn không sử dụng $ config ['subclass_prefix'] = 'MY_'; và gọi thư viện phiên làm $ this-> load-> library ('session'); nó đang dùng thư viện phiên bản CIs thay vì MY_Session tùy chỉnh của bạn.php

Here is the link

Các vấn đề liên quan