2016-04-01 9 views
5

Próbuję uruchomić kod z CLI, tak jak powiedziałem w dokumentacji CI, ale z jakiegoś powodu, być może z powodu użycia rozszerzenia HMVC, nie wejdzie on do określonego kontrolera .Codeigniter HMVC z CLI: brak wpisu kontrolera

Nie znalazłem żadnej dodatkowej dokumentacji dotyczącej wykonania CLI w witrynie rozszerzenia HMVC.

Czy ktoś wie, jak sobie z tym poradzić?

kod tutaj:

/** 
* 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); 
    } 
} 

Nieważne, czy to uruchomić z korzenia dokumentu:

php index.php cron generatepdfs 

czy to:

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

nie będą wyświetlane „nie osiągnął ".

Dzieje się tak, gdy uruchomię go z przeglądarki.

Są to jedne z wyjścia błędów do konsoli:

Nie można zlokalizować określonej klasy: Session.php

Mam nadpisane MY_Session biblioteki sesji w aplikacji/bibliotek/sesji/MY_Session .php, który działa idealnie w przeglądarce. Jeśli przeniesię ten plik o jeden katalog w górę, ten błąd nie pojawi się ponownie w konsoli, ale nie będzie działać w przeglądarce. Jest autoloaded przy okazji.

Obejście tego nie podoba mi się: skopiuj ten sam plik w obu lokalizacjach.

Następny błąd:

PHP Fatal error: Class 'CI_Preferencias' nie znaleziono w /home/mysite/public_html/system/core/Common.php on line 196

mam niestandardową bibliotekę nazywane Preferencje, które jest również ładowane automatycznie, w aplikacji/bibliotekach/Preferencias.php

Ponownie, działa to doskonale w przeglądarce. Jednak z CLI wydaje się szukać biblioteki CI_Preferencias, która nie istnieje. Jeśli zmienię nazwę na CI_Preferencias i automatycznie ładuję "CI_Preferencias", CI wyszuka klasę o nazwie CI_CI_Preferencias z CLI.

Nie jestem pewien, czy czegoś brakuje, czy jest obecny błąd w CI, lub moduł HMVC się z tym miesza.

Czy ktoś może mi pomóc? To doprowadza mnie do szaleństwa, ponieważ muszę korzystać z działań CLI zaplanowanych od cronjobs i czuję się całkowicie zagubiony.

+0

chciałbym myśleć, bo trzeba HMVC kontrolerów w aplikacji, a nie w module 'application/modules/your_module_name/kontrolery/Cron.php' – user4419336

+0

@ wolfgang1983: Jaka jest składnia CLI dla CodeIgniter gdybym miał kontroler umieszczony w module? Próbowałem bez powodzenia. W każdym razie, kontrolery poza modułami, w swojej pierwotnej lokalizacji, powinny nadal działać z wykorzystaniem rozszerzenia HMVC, tak jak dzieje się to podczas działania przez serwer sieciowy. –

+0

Jeden komentujący powyżej to ja, z moim osobistym kontem (nie tym, którego używam w pracy) – user3514092

Odpowiedz

0

Jeśli dodano w pliku konfiguracyjnym plik podklasy_prefiksu jako "$config['subclass_prefix'] = 'MY_';". Wypróbuj MY_Preferencias.php zamiast Preferencias.php

Jeśli nie użyłeś $ config ['subclass_prefix'] = 'MY_'; i wywoływanie biblioteki sesji jako $ this-> load-> library ('session'); korzysta z natywnej biblioteki sesji CI zamiast własnej niestandardowej MY_Session.php

Here is the link

Powiązane problemy