Приложение Codeigniter возвращает пустой вывод в CLI - PullRequest
3 голосов
/ 22 февраля 2012

Я настраиваю свой контроллер заданий cron, который будет работать только внутри CLI, я не начинал с чего-либо созданного, просто на этапе тестирования с примерами CI. Однако при его запуске я не получаю никаких выходных данных или чего-либо еще, просто новую строку, это команда, которую я выполнил:

root@serv$ php /var/www/ci/index.php tools message
root@serv

Как вы можете видеть в второй строке, я не получаю вывод, просто новую строку для запуска команды, но я не понимаю почему и не могу отладить ее. Код содержит это:

<?php
class Tools extends CI_Controller {

    public function message($to = 'World')
    {
        echo "Hello {$to}!".PHP_EOL;
    }
}
?>

В моем файле конфигурации значение $config['uri_protocol'] установлено на AUTO, поэтому это не является проблемой.

Как я могу отладить это? Какие варианты мне могут понадобиться?

У меня также есть display_errors и error_reporting для E_ALL.

Ответы [ 6 ]

3 голосов
/ 29 февраля 2012

Я обнаружил проблему, это была проблема с redirect('domain.com'); exit;, который у меня был в автозагрузке библиотеки, потому что она сопоставлялась с доменом в базе данных, поэтому CLI не обслуживает домен при обнаружении, поэтому яredirect('domain.com') и exit, поэтому я не вижу никаких выходных данных.

1 голос
/ 14 января 2018

Я также столкнулся с этим, когда играл w / cli для codeigniter. Мне потребовалось некоторое время, чтобы устранить проблему, и обнаружил, что я забыл, кроме моего контроллера в моей модели входа в систему, которая выполняет функцию redirect.

0 голосов
/ 31 января 2017

(CodeIgniter 2.2.0)

Добавить маршрут в /application/config/routes.php

для ...

<?php
class Cron extends CI_Controller
{    
    public function process_dumps()
    {
        echo "Processing dumps..." . PHP_EOL;
    }
}
?>

добавить ...

$route['cron/process_dumps'] = 'cron/process_dumps'

Без этой строки на CLI не было вывода!

0 голосов
/ 29 февраля 2012

У меня есть приложение, следующее этому руководству: http://codeigniter.com/wiki/Category:Advanced::CronScript работает (и производит вывод). CI был только 1.7.2, когда я сделал это, но он все еще может держать

0 голосов
/ 29 февраля 2012

Я думаю, что вы можете найти ответ http://codeigniter.com/wiki/Cron_job_bootstrapper, вызвав файл cron.php с контроллером параметров и функцией, а затем определите CRON_CI_INDEX для пути к файлу вашего основного index.php.Пример php /var/www/ci/cron.php --run = / tools / message

0 голосов
/ 28 февраля 2012

Это может быть глупым предложением, но с тем же успехом может дать ему шанс ... @lolwut, а что если вместо использования "echo", возможно, вам придется "вернуть" вывод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...