我正在编写一个Console Shell
将文件保存为文件夹中的 html 文件,webroot
以便浏览器可以通过 URL(即 /file.htm)访问它。
我希望能够将一个ctp文件加载到一个变量中,解析php inn进程然后将final变量保存为html文件的内容。有没有固定的方法来做到这一点?或者如果不是,我该如何定制?
谢谢。
可以在 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 类的信息。