使用CakePHP shell将输出写入文件

时间:2013-04-03 14:40:42

标签: shell cakephp cakephp-1.3

我试图简单地将“hello world”写入一个文件,来自cakephp shell,并计划最终使用我们的产品模型编写一个sitemap.xml文件。我找到了这个:Question让我开始......

但我想在Cake 1.3.6(我正在使用)中不支持ConsoleOutput,或者我需要包含持有它的类。

尝试从终端运行文件时出现的错误: PHP致命错误:第7行/public/vendors/shells/sitemap.php中找不到“ConsoleOutput”类

这是我的代码:

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');
}

}

1 个答案:

答案 0 :(得分:1)

在CakePHP 1.3中没有安装ConsoleOutput是正确的 - 你可以升级到版本2. *?

如果没有,你可以只使用常规PHP:

$fp = fopen('hello.txt', 'w');
fwrite($fp, 'hello world');
fclose($fp);

希望这有帮助。

托比