View 如何开始使用Kostache?

View 如何开始使用Kostache?,view,kohana,kohana-3,mustache,View,Kohana,Kohana 3,Mustache,我刚才问了一个关于模板的问题(),现在我知道我应该使用Kostache。它是模板语言的一个模块 无论如何,我刚刚为我的Kohana 3.1和所有作品启用了Kostache模块。安装正确!下一步怎么办?如何使用它 我现在应该把我的观点放在哪里? 我的控制器应该扩展什么? 如何分配变量? 如何制作视图的页眉、页脚等 也许有一步一步的指南?不会对我有多大帮助…两个存储库中都有很多演示和示例,你说这些对你没有帮助 我现在应该把我的观点放在哪里 视图类包含模板的逻辑,按照惯例应该存储在classes/Vi

我刚才问了一个关于模板的问题(),现在我知道我应该使用Kostache。它是模板语言的一个模块

无论如何,我刚刚为我的Kohana 3.1和所有作品启用了Kostache模块。安装正确!下一步怎么办?如何使用它

我现在应该把我的观点放在哪里? 我的控制器应该扩展什么? 如何分配变量? 如何制作视图的页眉、页脚等


也许有一步一步的指南?不会对我有多大帮助…

两个存储库中都有很多演示和示例,你说这些对你没有帮助

我现在应该把我的观点放在哪里

视图类包含模板的逻辑,按照惯例应该存储在
classes/View/{template name}.php

模板包含HTML,应存储在模块根目录中的
模板
目录中,例如
模板/login.mustache

默认情况下,kostache将根据视图类的名称尝试确定模板的位置

如果视图类被调用为
view\u Admin\u Login
,那么kostache将查找
模板/Admin/Login.mustache

我的控制器应该扩展什么

您不需要扩展任何特殊的控制器,普通的
控制器
可以作为基础正常工作

如何分配变量

控制器:

$view = new View_Admin_Login;

$view->message = 'Hello';
$this->response->body($view->render());
class Controller_Test extends Controller {

 public function action_index()
 {
    $view = new View_Home;
    $this->response->body($view->render());
 }

}
模板:

{{message}}
当然,您在视图类中声明的任何方法或变量也将在中可用 模板。如果存在同名的类变量和方法,则该方法将始终优先于该变量

如何制作视图的页眉、页脚等


如果你读这本书会有帮助的。其目的是扩展视图,另请参见APPPATH/classes/controller/Test.php中的

在MODPATH/KOstache/classes/view/Test.php中:

在MODPATH/KOstache/classes/templates/test.mustache中:

Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{ taxed_value }}, after taxes.
{{/in_ca}}
Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{ taxed_value }}, after taxes.
{{/in_ca}}
在以下示例中,不要注意命名类和继承: 试试这个

//应用程序/类/控制器:

$view = new View_Admin_Login;

$view->message = 'Hello';
$this->response->body($view->render());
class Controller_Test extends Controller {

 public function action_index()
 {
    $view = new View_Home;
    $this->response->body($view->render());
 }

}
//application/classes/view/Home.php:

class View_Home {
    public $name = "Chris";
    public $value = 10000;

    public function taxed_value() {
        return $this->value - ($this->value * 0.4);
    }

    public $in_ca = true;
    protected $_layout = 'home';
}
//应用程序/模板/home.mustache:

Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{ taxed_value }}, after taxes.
{{/in_ca}}
Hello {{name}}
You have just won ${{value}}!
{{#in_ca}}
Well, ${{ taxed_value }}, after taxes.
{{/in_ca}}

这比我想象的要容易…=]一个循序渐进的指南是让某件事情成功的最好方法。“很多”样本有时听起来像垃圾,根本没有帮助。干净的样品很有帮助。无论如何,感谢这个插件,把逻辑从模板中分离出来是个好主意。现在我只需要学习如何使用它。我花了一天多的时间试图让Kostache_布局正常工作,但没有成功。我终于在github上找到了ddrake的kohana_演示,它恰好使用了Kostache。这非常有帮助。ddrake repo很有帮助(谢谢),还发现了zombor的Vendo应用程序(),这也很有帮助。