Я пытаюсь просто написать «hello world» в файл из оболочки cakephp с планами в конечном итоге написать файл sitemap.xml с использованием наших моделей продуктов. Я нашел это: Question, который меня начал ...запись вывода в файл с оболочкой CakePHP
Но я думаю, что ConsoleOutput не поддерживается в Cake 1.3.6 (который я использую), или мне нужно включить класс, который его удерживает.
Я получаю ошибку при попытке запустить файл из терминала: PHP Фатальная ошибка: Class «ConsoleOutput» не найден в /public/vendors/shells/sitemap.php на линии 7
Вот мой код:
class SitemapShell extends Shell {
public function __construct($stdout = null, $stderr = null, $stdin = null) {
// This will cause all Shell outputs, eg. from $this->out(), to be written to
// TMP.'shell.out'
$stdout = new ConsoleOutput('file://'.TMP.'shell.out');
// You can do the same for stderr too if you wish
// $stderr = new ConsoleOutput('file://'.TMP.'shell.err');
parent::__construct($stdout, $stderr, $stdin);
}
public function main() {
// The following output will not be printed on your console
// but be written to TMP.'shell.out'
$this->out('Hello world');
}
}
Вы можете просто получить свой вывод в переменной и file_put_contents(). Было бы легче ИМО. – mark
Оболочка в 1.3 РАДИКАЛЬНО отличается от оболочки в 2.x. Действительно, 'ConsoleOutput' недоступен в 1.3. Я бы пошел с предложением @ mark. – jeremyharris
Итак, я предполагаю, что мне даже не нужен __construct. Я попробую это и отчитаю. благодаря –