pafnuty / laravel-fenom
Fenom Template Engine for Laravel 5
Requires
- php: >=5.4.0
- fenom/fenom: 2.*
- illuminate/config: 5.*
- illuminate/support: 5.*
- illuminate/view: 5.*
Requires (Dev)
- phpunit/phpunit: *
- satooshi/php-coveralls: dev-master
This package is not auto-updated.
Last update: 2024-11-09 18:43:26 UTC
README
Fenom Template Engine for Laravel 5
Bringing Fenom to Laravel 5 using the new Contracts Package.
##Installation
In the require key of composer.json file add the following
"pafnuty/laravel-fenom": "1.*"
Run the Composer update command
$ composer update
Run command
$ php artisan clear-compiled
In your config/app.php add 'Pafnuty\Fenom\FenomViewServiceProvider',
to the end of the providers
array and comment the 'Illuminate\View\ViewServiceProvider'
provider.
Like this:
'providers' => [ ... 'Illuminate\Validation\ValidationServiceProvider', //'Illuminate\View\ViewServiceProvider', ... 'Pafnuty\Fenom\FenomViewServiceProvider', ]
Run the artisan vendor:publish
command
$ php artisan vendor:publish --provider="Pafnuty\Fenom\FenomViewServiceProvider"
Will be published with the default views and the configuration file.
Configuration
Config file available in the folder config/view-fenom.php
.
Views by default have a structure similar to the structure of the blade for easier transition to new template engine in a new project.
Use
If you use the setting 'controller_syntax' => 'blade'
, changes to the controllers do not need to make.
If setting 'controller_syntax' => 'fenom'
calling view in controller will be like this:
public function index() { return view('myfolder/welcome.tpl'); }
Syntax
Fenom — this is a very quick and easy template engine! With easy syntax, similar to Smarty Template Engine.
Control Structures
If Statements
{if $records|length === 1) I have one record! {elseif $records| length > 1} I have multiple records! {else} I don't have any records! {/if}
Loops
{for ($i = 0 to = 10) The current value is {$i} {forelse} No values {/for} {foreach $list as $key => $value} {$key}: {$value} {foreachelse} Empty {/foreach}
Including Sub-Views
{include 'auth/errors.tpl' foo='bar'}
or
{insert 'auth/errors.tpl'}
Overwriting Sections
{* in app.tpl: *}
{block 'content'} text {/block}
{* in home.tpl: *}
{extends 'app.tpl'}
{block 'content'} home-text {/block}
{* in browser: *}
home-text
Comments
{* This comment will not be in the rendered HTML *}
Errors
{set $errors = $.errors}
{if $errors->any()}
{foreach $errors->all() as $error}
{$error}
{/foreach}
{/if}
App
{set $App = $.app}
{$App::someMethodName()}
More usage examples can be found on the Fenom documentation pages