V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
legendnan
V2EX  ›  PHP

smarty 是不是不行了?

  •  
  •   legendnan · 2019-02-15 23:46:32 +08:00 via Android · 9339 次点击
    这是一个创建于 2113 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我看官网很久很久没有更新了。最近用到 php 百度说这个不错。是不是模板引擎已经不用了?
    29 条回复    2019-03-16 22:46:25 +08:00
    stevenhawking
        1
    stevenhawking  
       2019-02-15 23:51:16 +08:00
    yes
    agdhole
        2
    agdhole  
       2019-02-15 23:54:40 +08:00
    推荐 blade
    joyqi
        3
    joyqi  
       2019-02-15 23:56:49 +08:00
    twig
    dot2017
        4
    dot2017  
       2019-02-15 23:56:54 +08:00
    很久的模版引擎了啊,印象里 php 4 时代的经典
    Mac
        5
    Mac  
       2019-02-16 00:17:37 +08:00 via Android
    现在都在搞前后端分离,性能和功能都跟不上了呗
    westoy
        6
    westoy  
       2019-02-16 00:24:16 +08:00
    嗯,15 年前流行过, 之前是 phplib, 之后是 smarttemplate, 遥远的记忆啊.......
    jjplay
        7
    jjplay  
       2019-02-16 02:09:51 +08:00
    上古时期的,如上所说,现在用 blade twig
    SimbaPeng
        8
    SimbaPeng  
       2019-02-16 03:21:13 +08:00
    php 本身就是模板语言,看看 yii
    legendnan
        9
    legendnan  
    OP
       2019-02-16 07:06:22 +08:00 via Android
    @joyqi 这个也有了解了,但是没有好的中文文档。我这种不懂外语的渣渣看不太懂
    vanishcode
        10
    vanishcode  
       2019-02-16 07:27:28 +08:00 via Android
    虽然比较反感,但是百度 wise 有些业务里还在用的,比如多模那边。不过正在逐渐迁移到自己的轮子上
    xiaotuzi
        11
    xiaotuzi  
       2019-02-16 07:54:14 +08:00 via iPhone
    用正则自己写一个…我就自己写了一个模板引擎…那是相当简单,自己写的模板引擎可以自己定义任何规则。
    askfilm
        12
    askfilm  
       2019-02-16 08:31:46 +08:00
    twig +3
    GM
        13
    GM  
       2019-02-16 09:06:25 +08:00
    @SimbaPeng php 本身确实是模板语言,而且速度是最快的。

    然鹅:
    里面可以写任意 PHP 代码,这是不可接受的。
    wuxi889
        14
    wuxi889  
       2019-02-16 09:07:58 +08:00
    thinkphp 表示现在还是用的 smarty
    chniccs
        15
    chniccs  
       2019-02-16 10:13:58 +08:00
    都不前后分离的么
    legendnan
        16
    legendnan  
    OP
       2019-02-16 10:18:08 +08:00 via Android
    @xiaotuzi 老铁,分享下。看看你怎么写的
    puritania
        17
    puritania  
       2019-02-16 10:26:57 +08:00 via iPhone
    现在微服务时代一些讲究设计模式优雅的框架带来的作用越来越小,前后端分离的广泛应用使得这些什么模板引擎也越来越鸡肋。
    GuangXiN
        18
    GuangXiN  
       2019-02-16 11:39:24 +08:00 via Android
    当年 php 要输出 html 所以用模板引擎,现在 php 就输出个 json 用什么模板引擎
    jay4497
        19
    jay4497  
       2019-02-16 11:47:51 +08:00
    tp 用的貌似自己改良的 smarty。其它的知道的比较现代的模板引擎 twig、blade 跟 plates。
    mrytsr
        20
    mrytsr  
       2019-02-16 15:13:07 +08:00 via Android
    plates
    xiaotuzi
        21
    xiaotuzi  
       2019-02-16 17:58:31 +08:00 via iPhone
    @legendnan 利用正则,匹配模板标签,转换为 PHP 标签,然后将解析好的文件引入到系统最后 display 显示出来。这很简单,关键在于匹配正则标签
    slion
        22
    slion  
       2019-02-16 23:39:04 +08:00
    自学 PHP 时学习过 smarty 模板引擎,可惜在工作中从来没有用过,貌似这个的确是很古老的产品了,现在都是前后端分离了。像 thinkPHP,laravel 都有自己的模板引擎,也没有必要引入 smarty 了。
    topthink
        23
    topthink  
       2019-02-17 12:41:12 +08:00
    @wuxi889
    @jay4497 TP 什么时候用的 smarty 了,TP 的模板引擎参考自 Struts 不能因为看起来用法类似就说是参考 Smarty
    agdhole
        24
    agdhole  
       2019-02-17 14:55:03 +08:00
    @topthink #23 tp 的模板引擎写起来太啰嗦了,不如 blade 之类的简洁
    topthink
        25
    topthink  
       2019-02-17 18:04:27 +08:00
    @agdhole 希望指教 TP 的模板引擎其实有两种语法 下面的语法还有更简洁的用法?
    ~~~
    {foreach $list as $key=>$vo }
    {$vo.id}:{$vo.name}
    {/foreach}
    ~~~
    何况简洁不是评判模板引擎的唯一标准的
    jay4497
        26
    jay4497  
       2019-02-18 08:00:26 +08:00
    @topthink 不好意思,想当然了,抱歉。
    wuxi889
        27
    wuxi889  
       2019-02-18 10:39:51 +08:00
    @topthink 尴尬了,我只是看 tp 模板引擎很像 smarty。再去看了下源码确实不是,误会误会,不好意思
    slince
        28
    slince  
       2019-02-21 12:10:16 +08:00
    tp 的模板引擎,blade 都是基于正则替换实现的半吊子模板引擎;有完整词法解析器和抽象语法树的我知道的只有 smarty 和 twig,只不过 smarty 太久远,历史包袱太重;推荐 twig,和 python 的 jinja 用法都是一致的
    dvaknheo
        29
    dvaknheo  
       2019-03-16 22:46:25 +08:00
    smarty 也是替换编译的。smarty 用来解决不允许模板里出现 php 代码的问题是杀鸡用牛刀。
    phpwind 的 EOF 方式或许会好些。

    我写过一个无人关注的 解析 xml 的模板引擎 tagfeather,让页面人员和代码人员各工作在不同文件,然后用 选择器等方式拼合起来。解决了 动态页面还得由开发去改的问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 619ms · UTC 02:18 · PVG 10:18 · LAX 18:18 · JFK 21:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.