Smarty 现在还有人用吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wdd2007
V2EX    PHP

Smarty 现在还有人用吗?

  •  
  •   wdd2007 2013-07-10 21:24:51 +08:00 12683 次点击
    这是一个创建于 4477 天前的主题,其中的信息可能已经有所发展或是发生改变。
    32 条回复    1970-01-01 08:00:00 +08:00
    shiny
        1
    shiny  
       2013-07-10 21:29:24 +08:00
    几年前用了,感觉自定义标签和过滤器非常慢,看了实现是eval的。于是费了一年多时间写了个模板引擎。
    后来用着用着觉得,一般使用场景下,其实用的人如果注意代码质量,用PHP原生语法也挺好;如果用的人不注意代码质量,模板引擎带来的好处也有限,让整个系统变得更复杂。
    iloveyou
        2
    iloveyou  
       2013-07-10 21:38:44 +08:00
    php就是模板语言
    donald
        3
    donald  
       2013-07-10 21:45:18 +08:00
    现在貌似twig比较火?
    darasion
        4
    darasion  
       2013-07-10 22:27:06 +08:00
    倾向于直接php,但是,smarty,大把人习惯了,成为传统了,一般没人知道当初为什么用它。
    xunyu
        5
    xunyu  
       2013-07-10 23:19:04 +08:00
    我还在用
    Feobe
        6
    Feobe  
       2013-07-11 01:08:17 +08:00
    Twig已完胜smarty。
    或者直接原生。
    buru
        7
    buru  
       2013-07-11 01:10:19 +08:00 via iPhone
    twig 因为我写python用jinja2 两者很像
    PrideChung
        8
    PrideChung  
       2013-07-11 01:17:14 +08:00   1
    倾向于用框架自带的模板或者直接PHP,有些人不知道,PHP的控制结构其实是有替代语法的:

    <? if ($foo = 'foo'): ?>
    <p>foo</p>
    <? else: ?>
    <p>bar</p>
    <? endif ?>

    使用比较清爽的 short_open_tag 看起来跟Smarty也没什么区别,效率肯定更好。
    chshouyu
        9
    chshouyu  
       2013-07-11 01:17:28 +08:00
    @buru 这么巧
    fkccp
        10
    fkccp  
       2013-07-11 12:21:41 +08:00
    现在被逼用thinkphp,我个人倾向原生php~
    ruchee
        11
    ruchee  
       2013-07-11 12:28:50 +08:00
    Samrty只要不理会它那些复杂的结构,只用最简单的还是挺好用的,公司框架就用的它

    Twig这几天正在看,感觉重复造轮子啊,丫的,它居然把PHP自带的很多函数重新封装了一遍,还美其名曰过滤器,闲的蛋疼
    sun019
        12
    sun019  
       2013-07-11 13:13:10 +08:00
    discuz 或者ecmall的 框架都 挺好用的 扒出来用吧
    credochen
        13
    credochen  
    &nbs;  2013-07-11 17:01:38 +08:00
    我是用原生的PHP。smarty还没正式用过
    harryxu
        14
    harryxu  
       2013-07-11 17:04:49 +08:00
    我倒是非常喜欢用laravel的blade模板,可以模板语法和php语法混用,感觉很轻量级又很灵活。
    yetone
        15
    yetone  
       2013-07-11 17:17:12 +08:00
    @PrideChung 这种替代语法其实是不推荐的。
    chchwy
        16
    chchwy  
       2013-07-11 17:26:38 +08:00
    @yetone 可否你明一下做的缺?

    我已用很久了,得起很清爽哩。
    skydiver
        17
    skydiver  
       2013-07-11 17:38:40 +08:00
    @yetone 短 tag 在新版的 PHP 里面已经默认打开了,说明官方是鼓励这种写法的。
    PrideChung
        18
    PrideChung  
       2013-07-11 18:24:40 +08:00   1
    @yetone 官方文档没有任何关于替代语法的deprecation。http://php.net/manual/en/language.basic-syntax.phptags.php

    如果你是指 short open tag, 同样的官方也没有任何不推荐使用的声明
    http://php.net/manual/en/language.basic-syntax.phptags.php

    唯一能想到的就是 PSR-0 推荐只使用 <?php ?> 和 <?= ?> ,但我觉得在view模板里面用 short open tag没有任何不妥。其他人不推荐使用 short open tag 的原因主要是因为这选项以前不是默认打开的,在虚拟主机上你没法动它的配置。如果你用比较新的PHP版本或者自己搭VPS基本可以无视。
    就像 @skydiver 说的,现在 short_open_tag 已经变成默认打开了,姑且不论PSR,起码PHP官方是不反对使用的。
    PrideChung
        19
    PrideChung  
       2013-07-11 18:25:49 +08:00
    链接发错了,关于替代语法的官方文档:
    http://php.net/manual/en/control-structures.alternative-syntax.php
    isy     20
    isy  
       2013-07-11 21:00:27 +08:00
    还没开始学 smarty 的话就直接用 twig 吧
    msg7086
        21
    msg7086  
       2013-07-12 14:35:16 +08:00
    @PrideChung 我依稀看到了 PHP also allows for short tags <? and ?> (which are discouraged because ......

    其实之前不推荐使用的主要原因是和xml语法有冲突吧……
    ksc010
        22
    ksc010  
       2013-07-12 14:46:23 +08:00
    用php的话看这一团糟啊
    怪乱
    PrideChung
        23
    PrideChung  
       2013-07-12 14:53:51 +08:00
    @msg7086 居然把这句看漏了……PHP你嘴巴上说不要,又默认给打开了是闹哪样
    summer_charlie
        24
    summer_charlie  
       2013-07-12 16:48:02 +08:00
    laravel 的 blade
    ety001
        25
    ety001  
       2013-07-13 19:08:06 +08:00
    一直原生,用smarty。。
    felixye
        26
    felixye  
       2013-07-13 21:14:55 +08:00
    直接原生的PHP就可以了。
    如果不怎么使用XML的话,可以考虑开短标签 short_open_tag
    dongbeta
        27
    dongbeta  
       2013-07-14 10:08:11 +08:00
    Smarty 诞生和红火的应用背景已经不存在了。所以,别用了。
    zebinary
        28
    zebinary  
       2013-07-14 12:15:07 +08:00
    @PrideChung +1
    我用yii,视图里面都是这样的写
    jingwentian
        29
    jingwentian  
       2013-07-14 17:50:37 +08:00
    @wdd2007 这么巧
    picasso250
        30
    picasso250  
       2014-01-14 16:25:34 +08:00
    @msg7086 <? ?> 就是 <?php ?> 的缩写。

    <?= ?> 是 <?php echo x ?> 的缩写。

    官方鼓励下面的,不鼓励上面的。
    msg7086
        31
    msg7086  
       2014-01-14 16:44:33 +08:00
    @picasso250 请问您想说什么?
    picasso250
        32
    picasso250  
       2014-01-14 17:23:23 +08:00
    @msg7086

    Note:
    This directive also affected the shorthand <?= before PHP 5.4.0, which is identical to <? echo. Use of this shortcut required short_open_tag to be on. Since PHP 5.4.0, <?= is always available.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2813 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 13:35 PVG 21:35 LAX 06:35 JFK 09:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86