2017-06-26 10:48:21 2074次浏览 2条回答 0 悬赏 10 金钱

如题所示,一直有个疑问而已,Yii似乎不存在视图文件编译缓存这个事情,是因为Yii的视图文件直接采用php原生的写法,直接就是编译的php文件吗?
那么为何不把layout或者include的布局文件直接编译成一个文件呢?
不知道Yii对这方面是如何考虑的。

  • 回答于 2017-06-26 10:51 举报
    5 条回复
    回复于 2017-06-26 11:15 回复

    可能我的描述有点问题,其实我就是想了解下,比如Tp有Tp的模板引擎,laravel有blade模板引擎。那么Yii的模板引擎是不是没有的?

    顺便摘录下laravel的blade模板引擎描述:
    Blade 是 Laravel 所提供的一个简单且强大的模板引擎。相较于其它知名的 PHP 模板引擎,Blade 并不会限制你必须得在视图中使用 PHP 代码。所有 Blade 视图都会被编译缓存成普通的 PHP 代码,一直到它们被更改为止。这代表 Blade 基本不会对你的应用程序生成负担。

    “所有 Blade 视图都会被编译缓存成普通的 PHP 代码”

    简单来说就是对视图文件的编译工作,Yii好像没有这个。
    至于把编译文件缓存起来,只是编译必须要做的。
    所以归根结底,我问的其实是Yii没有视图编译。。。

    回复于 2017-06-26 11:29 回复

    你是否看过TP 和laraverl的模板引擎缓存后的文件,你看是否跟yii的很像

    回复于 2017-06-26 12:10 回复

    他们的是把布局文件合并起来,编译成一个php文件。其中用到的一些数据都变成php的语法。至少Yii没有合并这些,但是Yii视图文件直接就是php语法。这样看来似乎区别就在这里?

    回复于 2017-06-26 14:31 回复

    Yii应该也是可以用缓存的 但是你看目前Yii模板的解析方式和其他的两种的缓存的方式 就插一个找layout的地方阿

    回复于 2017-07-28 18:31 回复

    没有,yii2设计本来就不考虑模板引擎来做视图层的东西,而是希望通过大量的widget来简化视图层的开发,由于widget很多都是php,所以再套一层模板解析就显得很没必要了,

  • 回答于 2017-06-26 12:23 举报

    ??????????????

您需要登录后才可以回答。登录 | 立即注册
mydzoo
总监

mydzoo

注册时间:2017-01-05
最后登录:2022-03-29
在线时长:53小时40分
  • 粉丝4
  • 金钱2075
  • 威望10
  • 积分2705

热门问题