cakephp 2.3从控制台获取ctp文件

时间:2013-05-01 08:02:14

标签: cakephp console

我正在编写一个Console Shell,将文件保存为webroot文件夹中的html文件,以便浏览器通过URL(即/file.htm)访问该文件。

我希望能够将ctp文件加载到变量中,解析php inn的过程,然后将最终变量保存为html文件的内容。有没有一套方法可以做到这一点?或者如果不是我怎么做这个定制?

感谢。

1 个答案:

答案 0 :(得分:1)

可以在Shell中手动使用View类,具体如下:

<?php

// Make the View class available.
App::uses('View', 'View');

class HtmlCreatorShell extends AppShell {

    function create() {
        // Initialize the View class.
        $view = new View(null);
        // Pass variables to the view like you would in a controller.
        $view->set('article', array('Article' => ...));
        // Render the view and store the HTML (string) output.
        $html = $view->render('Articles/view');
        // Output to the terminal for testing.
        $this->out($html);
    }

}

要明确,Articles/view是相对于app/Views目录的视图文件,没有.ctp扩展名。

CakePHP API提供了有关View class

的更多信息