Download the PHP package deniaz/terrific-twig without Composer
On this page you can find all versions of the php package deniaz/terrific-twig. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download deniaz/terrific-twig
More information about deniaz/terrific-twig
Files in deniaz/terrific-twig
Package terrific-twig
Short Description Extension to embrace the Terrific frontend methodology in Twig. Currently it adds a custom component tag to Twig which mimics Nitro's handlebars helper.
License MIT
Homepage https://github.com/namics/terrific-twig
Informations about the package terrific-twig
Terrific Twig
Extension to embrace the Terrific frontend methodology in Twig.
Currently it adds a custom component
tag to Twig which mimics Nitro's handlebars helper.
Installation
Using composer:
Requirements
The following versions of PHP are currently supported.
PHP 5.4(Deprecated. Builds are failing since the tests are relying on::class
.)- PHP 5.5
- PHP 5.6
- PHP 7
- HHVM
Setup
Step 1: Implement TemplateInformationProvider
Step 2: Implement ContextProviderInterface
Step 3: Add TerrificLoader
Step 4: Add TerrificExtension
Step 5: Profit!
Usage
Documentation
Extension
The extension provides terrific extensions to Twig. Currently the extension provides the ComponentTokenParser
.
Token Parser
The token parser contains the parsing step for the component tag. It tokenizes the stream to different nodes (component
, data
) and an attribute (only
).
The functionality is based on the fantastic Twig_TokenParser_Include
.
Node
The Node compiles the tokenized tag to PHP. To see some of the output, check the ComponentTest
.
Loader
The TerrificLoader
extends the Twig_Loader_Filesystem
as it actually loads templates from the filesystem. An implementation of TemplateLocatorInterface
provides the paths where the loader should search for templates.
Template Information Provider
An implementation of TemplateInformationProviderInterface
should return a list of paths where templates live. These should be in the form of ['frontend/components/atoms', 'frontend/components/molecules', 'frontend/components/organisms']
. The component directory will be provided by the TerrificLoader
(Example/example.[ext]
).
Context Provider
This is the tricky part. An implementation of ContextProviderInterface
decides which data will be made available to Twig templates.
TODO: More on that.
ConfigReader
Reads nitro's config.json
and parses essential information such as the component paths and file extension.
Credits
This project is partially sponsored by Namics.