Best Practice

    Best Practice

    使用Twig格式的模板作为你的模板引擎。

    总地来说,PHP的模板体系极度臃肿,跟Twig引擎相比它缺少许多现代模板应当具备的原生支持,比如继承、自动escape以及变量调节和模板函数等。

    Twig是Symfony默认的引擎,它在全部“非PHP原生模板引擎”中拥有最大的社区支持(被用于高知名度项目比如Drupal8中)。

    除此之外,Twig也是唯一受Symfony 3.0支持的模板格式。说起来,PHP官方有可能取消对原生模板引擎的支持。

    Best Practice

    把你的程序所有模板存放于目录中。

    传统上,Symfony开发者将程序模板存放在每个bundle的Resources/views/目录下。然后他们会用逻辑名称来引用这些模板(比如AcmeDemoBundle:Default:index.html.twig)。

    但对于你的程序来说,更方便的作法是把模板放在app/Resources/views/目录中。对于初学者来说,这可以大幅简化模板的逻辑名称:

    另一个好处在于,中心化你的模板可以令设计师减轻工作负担。他们毋须在海量的分散在各处的bundles里面寻找模板。

    Best Practice

    Best Practice

    对模板及其所在目录,请使用小写的蛇型连接法来命名,比如snake_case。

    Twig扩展

    Best Practice

    将定义Twig Extension的文件放在AppBundle/Twig/目录下,并使用app/config/services.yml文件配置它们。

    我们的程序需要一个md2html变量调节器,这样我们就可以转换每一贴的MarkDown内容为HTML。

    要实现这个,先安装极为出色的 MarkDown解析器,它是我们项目的依赖:

    然后创建一个新的MarkDown服务,我们在Twig extension中要用到。服务定义仅用到类的路径:

    Markdown类里只有一个方法用于转换MarkDown内容到HTML:

    接下来,要创建Twig扩展了。定义一个名为md2html的filter(变量调节器)要用到类。注入markdown服务到这个Twig扩展类的构造器中: