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.
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.
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');
}
Fenom — this is a very quick and easy template engine! With easy syntax, similar to Smarty Template Engine.
{if $records|length === 1)
I have one record!
{elseif $records| length > 1}
I have multiple records!
{else}
I don't have any records!
{/if}
{for ($i = 0 to = 10)
The current value is {$i}
{forelse}
No values
{/for}
{foreach $list as $key => $value}
{$key}: {$value}
{foreachelse}
Empty
{/foreach}
{include 'auth/errors.tpl' foo='bar'}
or
{insert 'auth/errors.tpl'}
{* in app.tpl: *}
{block 'content'} text {/block}
{* in home.tpl: *}
{extends 'app.tpl'}
{block 'content'} home-text {/block}
{* in browser: *}
home-text
{* This comment will not be in the rendered HTML *}
{set $errors = $.errors}
{if $errors->any()}
{foreach $errors->all() as $error}
{$error}
{/foreach}
{/if}
{set $App = $.app}
{$App::someMethodName()}
More usage examples can be found on the Fenom documentation pages