mirror of
https://github.com/twigphp/Twig.git
synced 2026-09-28 08:05:03 +00:00
df585dea82
WARNING: This is an API change which is NOT backward compatible. The loaders do not take the cache and autoReload options anymore. Instead, the Twig_Environment class has two new options: cache and auto_reload. Read the updated documentation for more information. git-svn-id: http://svn.twig-project.org/trunk@134 93ef8e89-cb99-4229-a87c-7fa0fa45744b
94 lines
2.8 KiB
Markdown
94 lines
2.8 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
|
|
2. `svn co http://svn.twig-project.org/trunk/ twig`
|
|
|
|
### 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');
|