mthaml / mthaml-bundle
This Bundle provides a HAML templating engine
Installs: 41 714
Dependents: 0
Suggesters: 0
Security: 0
Stars: 38
Watchers: 6
Forks: 13
Open Issues: 3
Type:symfony-bundle
Requires
- php: ^5.3.3|^7.0
- mthaml/mthaml: ~1.3
- 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 Symfony bundle using the MtHaml PHP HAML parser.
Features
- 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
Installation
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:
[MtHaml] git=git://github.com/arnaud-lb/MtHaml.git target=MtHaml [MtHamlBundle] git=git://github.com/arnaud-lb/MtHamlBundle.git target=bundles/MtHamlBundle
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://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
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:
<?php // app/autoload.php $loader->registerNamespaces(array( // ... 'MtHaml' => __DIR__ . '/../vendor/MtHaml/lib', 'MtHamlBundle' => __DIR__ . '/../vendor/bundles', ));
Step 3: Enable the bundle
Finally, enable the bundle in the kernel:
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new MtHamlBundle\MtHamlBundle(), ); }
Step 4: Configure the MtHamlBundle
# app/config/config.yml framework: # ... templating: engines: ['haml','twig'] # required, for Symfony to load the bundle configuration mt_haml:
(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() { $this->render('FooBundle:Bar:baz.html.haml'); }
With FOSRestBundle:
/** * @View(engine="haml") */ public function fooAction() {
Syntax
See MtHaml docs
Commands
mthaml:debug:dump
The mthaml:debug:dump command compiles a HAML templates into Twig and displays the resulting Twig template.
For debug purposes.
Example:
php ./app/console mthaml:debug:dump AcmeDemoBundle:Demo:index.html.haml