mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-24 09:08:38 +00:00
95 lines
2.9 KiB
Markdown
95 lines
2.9 KiB
Markdown
Introduction
|
|
============
|
|
|
|
This is the documentation for Twig, the flexible, fast, and secure template
|
|
language for PHP.
|
|
|
|
If you have any exposure to other text-based template languages, such as
|
|
Smarty, Django, or Jinja, you should feel right at home with Twig. It's both
|
|
designer and developer friendly by sticking to PHP's principles and adding
|
|
functionality useful for templating environments.
|
|
|
|
The key-features are...
|
|
|
|
* *Fast*: Twig compiles templates down to plain optimized PHP code. The
|
|
overhead compared to regular PHP code was reduced to the very minimum.
|
|
|
|
* *Secure*: Twig has a sandbox mode to evaluate untrusted template code. This
|
|
allows Twig to be used as a templating language for applications where
|
|
users may modify the template design.
|
|
|
|
* *Flexible*: Twig is powered by a flexible lexer and parser. This allows the
|
|
developer to define its own custom tags and filters, and create its own
|
|
DSL.
|
|
|
|
Prerequisites
|
|
-------------
|
|
|
|
Twig needs at least **PHP 5.2.4** to run.
|
|
|
|
Installation
|
|
------------
|
|
|
|
You have multiple ways to install Twig. If you are unsure what to do, go with
|
|
the tarball.
|
|
|
|
### From the tarball release
|
|
|
|
1. Download the most recent tarball from the [download page](http://www.twig-project.org/installation)
|
|
2. Unpack the tarball
|
|
3. Move the files somewhere in your project
|
|
|
|
### Installing the development version
|
|
|
|
1. Install Subversion or Git
|
|
2. For Subversion: `svn co http://svn.twig-project.org/trunk/ twig`, for Git:
|
|
`git clone git://github.com/fabpot/Twig.git`
|
|
|
|
### Installing the PEAR package
|
|
|
|
1. Install PEAR
|
|
2. pear channel-discover pear.twig-project.org
|
|
3. pear install twig/Twig (or pear install twig/Twig-beta)
|
|
|
|
Basic API Usage
|
|
---------------
|
|
|
|
This section gives you a brief introduction to the PHP API for Twig.
|
|
|
|
The first step to use Twig is to register its autoloader:
|
|
|
|
[php]
|
|
require_once '/path/to/lib/Twig/Autoloader.php';
|
|
Twig_Autoloader::register();
|
|
|
|
Replace the `/path/to/lib/` path with the path you used for Twig installation.
|
|
|
|
>**NOTE**
|
|
>Twig follows the PEAR convention names for its classes, which means you can
|
|
>easily integrate Twig classes loading in your own autoloader.
|
|
|
|
[php]
|
|
$loader = new Twig_Loader_String();
|
|
$twig = new Twig_Environment($loader);
|
|
|
|
$template = $twig->loadTemplate('Hello {{ name }}!');
|
|
|
|
$template->display(array('name' => 'Fabien'));
|
|
|
|
Twig uses a loader (`Twig_Loader_String`) to locate templates, and an
|
|
environment (`Twig_Environment`) to store the configuration.
|
|
|
|
The `loadTemplate()` method uses the loader to locate and load the template
|
|
and returns a template object (`Twig_Template`) which is suitable for
|
|
rendering with the `display()` method.
|
|
|
|
Twig also comes with a filesystem loader:
|
|
|
|
[php]
|
|
$loader = new Twig_Loader_Filesystem('/path/to/templates');
|
|
$twig = new Twig_Environment($loader, array(
|
|
'cache' => '/path/to/compilation_cache',
|
|
));
|
|
|
|
$template = $twig->loadTemplate('index.html');
|