coderua / Laravel.Smarty

smarty template engine for laravel

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laravel.Smarty

Smarty Template Engine for Laravel
(Support for Laravel5.x and Lumen)

Build Status Coverage Status Dependency Status Scrutinizer Code Quality

License Latest Version Total Downloads StyleCI

Codacy Badge SensioLabsInsight

Installation For Laravel

Require this package with Composer

$ composer require ytake/laravel-smarty

or composer.json

"require": {
  "ytake/laravel-smarty": "~2.0"
},

add Laravel.Smarty Service Providers

your config/app.php

'providers' => [
    // add smarty extension
    \Ytake\LaravelSmarty\SmartyServiceProvider::class, 
    // add artisan commands  
    \Ytake\LaravelSmarty\SmartyConsoleServiceProvider::class, 
]

Installation For Lumen

Require this package with Composer

$ composer require ytake/laravel-smarty

or composer.json

"require": {
  "ytake/laravel-smarty": "~2.0"
},

register Laravel.Smarty Service Providers

your bootstrap/app.php

$app->configure('ytake-laravel-smarty');
$app->register(Ytake\LaravelSmarty\SmartyServiceProvider::class);
$app->register(Ytake\LaravelSmarty\SmartyConsoleServiceProvider::class);

Configuration

publish configuration file (for Laravel5)

$ php artisan vendor:publish

publish to config directory

Of Course, Blade Template can also be used to Render Engine.

configuration file (for Lumen)

Copy the vendor/ytake/laravel-smarty/src/config/ytake-laravel-smarty.php file to your local config directory

config for Production

edit config/ytake-laravel-smarty.php

    // enabled smarty template cache
    'caching' => true, // default false
    
    // disabled smarty template compile
    'force_compile' => false, // default true(for develop)

Or

add .env file

SMARTY_CACHE=true
SMARTY_COMPILE=false

edit config/ytake-laravel-smarty.php

    'caching' => env('SMARTY_CACHING', false),
   
    'force_compile' => env('SMARTY_FORCE_COMPILE', true),

and more..!

Laravel.Smarty Package Optimize (Optional for production)

required config/compile.php

'providers' => [
    //
    \Ytake\LaravelSmarty\SmartyCompileServiceProvider::class
],

use optimize command

for production

$ php artisan optimize

for develop/debug

$ php artisan optimize --force

Basic

easily use all the methods of Smarty

// laravel5 view render
view("template.name");

// Laravel blade template render(use Facades)
\View::make('template', ['hello']);
// use Smarty method

\View::assign('word', 'hello');  
\View::clearAllAssign(); // smarty method

View Composer, and View Share

$this->app['view']->composer('index', function (View $view) {
    $view->with('message', 'enable smarty');
});
$this->app['view']->share('title', 'laravel-smarty');
Hello Laravel.Smarty

{$title}

{$message}

Artisan

smarty's cache clear, remove compile class from Artisan(cli)

Template cache clear

$ php artisan ytake:smarty-clear-cache
Options description
--file (-f) specify file
--time (-t) clear all of the files that are specified duration time
--cache_id (-cache) specified cache_id groups

Remove compile file

$ php artisan ytake:smarty-clear-compiled
Options description
--file (-f) specify file
--compile_id (-compile) specified compile_id

Template Compiler

$ php artisan ytake:smarty-optimize
Options description
--extension (-e) specified smarty file extension(default: .tpl)
--force compiles template files found in views directory

Template Caching

choose file, memcached, Redis
(default file cache driver)

// smarty cache driver "file", "memcached", "redis"
'cache_driver' => 'file',

// memcached servers
'memcached' => [
    [
        'host' => '127.0.0.1',
        'port' => 11211,
        'weight' => 100
    ],
],

// redis configure
'redis' => [
    [
        'host' => '127.0.0.1',
        'port' => 6379,
        'database' => 0,
    ],
],

example

registerFilter in ServiceProvider
registerFilter in Controller
layout.sample
layout.extends.sample

About

smarty template engine for laravel

License:MIT License


Languages

Language:PHP 99.5%Language:Shell 0.3%Language:Smarty 0.2%