alexvasilyev / mthaml-bundle
此Bundle提供HAML模板引擎
1.6.1
2017-06-09 11:51 UTC
Requires
- php: ^5.3.3|^7.0
- alexvasilyev/mthaml: ^1.9
- symfony/framework-bundle: ~2.3|~3.0
- symfony/twig-bundle: ~2.3|~3.0
Requires (Dev)
- jms/translation-bundle: ~1.0
- sensio/framework-extra-bundle: ~2.1|~3.0
- symfony/assetic-bundle: ~2.3|~3.0
- symfony/browser-kit: ~2.3|~3.0
- symfony/console: ~2.3|~3.0
- symfony/css-selector: ~2.3|~3.0
- symfony/yaml: ~2.3|~3.0
README
HAML 使用 MtHaml PHP HAML解析器 的 Symfony bundle。
特性
- 充当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,可以跳过此步骤。
将MtHaml
和MtHamlBundle
命名空间添加到您的自动加载器中
<?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