alexvasilyev/mthaml-bundle

此Bundle提供HAML模板引擎

安装: 23

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 13

类型:symfony-bundle

1.6.1 2017-06-09 11:51 UTC

This package is auto-updated.

Last update: 2024-09-29 04:31:19 UTC


README

HAML 使用 MtHaml PHP HAML解析器 的 Symfony bundle。

Build Status

特性

  • 充当Twig预处理器:支持Twig函数、过滤器、宏、块、继承、表达式和所有Twig特性
  • 混合Twig和HAML模板:您可以在HAML模板中包含、扩展、使用和导入Twig模板,反之亦然。
  • 高性能:模板被编译成PHP代码并缓存,没有解析或运行时开销。
  • 编辑器支持的HAML语法

安装

步骤1:下载MtHaml和MtHamlBundle

最终,MtHaml文件应下载到vendor/MtHaml目录,MtHamlBundle文件到vendor/bundles/MtHamlBundle目录。

这可以通过几种方式完成,具体取决于您的偏好。第一种方法是标准的Symfony2方法。

使用Composer

$ composer require mthaml/mthaml-bundle:dev-master

(如果您使用此方法,可以跳过步骤2,因为Composer将为您处理自动加载。)

使用vendors脚本来下载

在deps文件中添加以下行

[MtHaml]
    git=git://github.com/arnaud-lb/MtHaml.git
    target=MtHaml
[MtHamlBundle]
    git=git://github.com/arnaud-lb/MtHamlBundle.git
    target=bundles/MtHamlBundle

现在,运行vendors脚本来下载bundle

$ php bin/vendors install

使用submodules

如果您更喜欢使用git submodules,请运行以下命令

$ git submodule add git://github.com/arnaud-lb/MtHamlBundle.git vendor/bundles/MtHamlBundle
$ git submodule add git://github.com/arnaud-lb/MtHaml.git vendor/MtHaml
$ git submodule update --init

步骤2:配置自动加载器

如果您使用composer安装了bundle,可以跳过此步骤。

MtHamlMtHamlBundle命名空间添加到您的自动加载器中

<?php
// app/autoload.php

$loader->registerNamespaces(array(
    // ...
    'MtHaml'       => __DIR__ . '/../vendor/MtHaml/lib',
    'MtHamlBundle' => __DIR__ . '/../vendor/bundles',
));

步骤3:启用bundle

最后,在kernel中启用bundle

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new MtHamlBundle\MtHamlBundle(),
    );
}

步骤4:配置MtHamlBundle

# app/config/config.yml

framework:
    # ...
    templating:
        engines: ['haml','twig']

# required, for Symfony to load the bundle configuration
mt_haml:

(这是必需的,因为Symfony需要加载bundle配置。)

步骤5:使用它

使用@Template()注解

/**
 * @Template(engine="haml")
 */
public function fooAction() {

使用@Haml()注解

@Haml注解是@Template的子类,默认将engine设置为haml

/**
 * @Haml
 */
public function fooAction() {

使用->render()

public function bazAction() {
    $this->render('FooBundle:Bar:baz.html.haml');
}

使用FOSRestBundle

/**
 * @View(engine="haml")
 */
public function fooAction() {

语法

参见MtHaml文档

命令

mthaml:debug:dump

mthaml:debug:dump命令将HAML模板编译成Twig并显示生成的Twig模板。

用于调试目的。

示例

php ./app/console mthaml:debug:dump AcmeDemoBundle:Demo:index.html.haml