This Bundle provides a HAML templating engine

Installs: 25 153

Dependents: 0

Suggesters: 0

Stars: 39

Watchers: 3

Forks: 9

Open Issues: 3

Type: symfony-bundle

1.4.0 2015-01-23 10:33 UTC


HAML Symfony bundle using the MtHaml PHP HAML parser.

Build Status


  • Acts as a Twig preprocessor: Supports Twig functions, filters, macros, blocks, inheritance, expressions and every Twig features
  • Mix Twig and HAML templates: You can include, extend, use and import Twig templates from HAML templates, and vice versa.
  • High performance: Templates are compiled to PHP code and cached, no parsing or runtime overhead.
  • HAML syntax supported by editors


Step 1: Download MtHaml and MtHamlBundle

Ultimately, the MtHaml files should be downloaded to the vendor/MtHaml directory, and the MtHamlBundle files to the vendor/bundles/MtHamlBundle directory.

This can be done in several ways, depending on your preference. The first method is the standard Symfony2 method.

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

(You can skip Step 2 if you are using this method as Composer will handle autoloading for you.)

Using the vendors script

Add the following lines in your deps file:


Now, run the vendors script to download the bundle:

$ php bin/vendors install
Using submodules

If you prefer instead to use git submodules, the run the following:

$ git submodule add git:// vendor/bundles/MtHamlBundle
$ git submodule add git:// vendor/MtHaml
$ git submodule update --init

Step 2: Configure the Autoloader

You can skip this step if you used composer to install the bundle.

Add the MtHaml and MtHamlBundle namespaces to your autoloader:

// app/autoload.php

    // ...
    'MtHaml'       => __DIR__ . '/../vendor/MtHaml/lib',
    'MtHamlBundle' => __DIR__ . '/../vendor/bundles',

Step 3: Enable the bundle

Finally, enable the bundle in the kernel:

// app/AppKernel.php

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

Step 4: Configure the MtHamlBundle

# app/config/config.yml

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

# required, for Symfony to load the bundle configuration

(This is required, for Symfony to load the bundle configuration.)

Step 5: Use it

With the @Template() annotation:
 * @Template(engine="haml")
public function fooAction() {
With the @Haml() annotation:

The @Haml annotation is a sub class of @Template with engine set to haml by default.

 * @Haml
public function fooAction() {
With ->render()
public function bazAction() {
With FOSRestBundle:
 * @View(engine="haml")
public function fooAction() {


See MtHaml docs



The mthaml:debug:dump command compiles a HAML templates into Twig and displays the resulting Twig template.

For debug purposes.


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