linushstge / laravel.smarty by linushstge
forked from ytake/Laravel.Smarty

Smarty template engine for Laravel and Lumen
22
0
0
Package Data
Maintainer Username: linushstge
Maintainer Contact: yuuki.takezawa@comnect.jp.net (Yuuki Takezawa)
Package Create Date: 2023-07-20
Package Last Update: 2025-06-05
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2025-06-07 15:00:04
Package Statistics
Total Downloads: 22
Monthly Downloads: 22
Daily Downloads: 8
Total Stars: 0
Total Watchers: 0
Total Forks: 0
Total Open Issues: 0

Laravel.Smarty

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

Build Status Coverage Status Scrutinizer Code Quality

License Latest Version Total Downloads

Installation For Laravel

Require this package with Composer

$ composer require ytake/laravel-smarty

or composer.json

"require": {
  "ytake/laravel-smarty": "^6.0"
},

Supported Auto-Discovery(^Laravel5.5)

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..!

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