pafnuty/laravel-fenom

Fenom Template Engine for Laravel 5

v1.0.0 2015-06-03 22:44 UTC

This package is not auto-updated.

Last update: 2024-04-13 15:17:26 UTC


README

Join the chat at https://gitter.im/pafnuty/Laravel.Fenom

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