terranc / blade by terranc
forked from xiaoler/blade

an independent version of laravel view template - blade
1,428
2
2
Package Data
Maintainer Username: terranc
Maintainer Contact: terran.chao@lookfeel.co (terranc)
Package Create Date: 2017-02-03
Package Last Update: 2017-02-04
Home Page: http://laravel.com/docs/5.4/blade
Language: PHP
License: MIT
Last Refreshed: 2024-05-01 15:02:06
Package Statistics
Total Downloads: 1,428
Monthly Downloads: 9
Daily Downloads: 0
Total Stars: 2
Total Watchers: 2
Total Forks: 1
Total Open Issues: 0

Blade

Use Laravel Blade templates without the full Laravel framework.(component & slot support)

Installation

composer require terranc/blade

Usage

<?php
$path = ['/view_path'];         // your view file path, it's an array
$cachePath = '/cache_path';     // compiled file path

$compiler = new \terranc\Blade\Compilers\BladeCompiler($cachePath);

// you can add a custom directive if you want
$compiler->directive('datetime', function($timestamp) {
    return preg_replace('/(\(\d+\))/', '<?php echo date("Y-m-d H:i:s", $1); ?>', $timestamp);
});

$engine = new \terranc\Blade\Engines\CompilerEngine($compiler);
$finder = new \terranc\Blade\FileViewFinder($path);

// if your view file extension is not php or blade.php, use this to add it
$finder->addExtension('tpl');

// get an instance of factory
$factory = new \terranc\Blade\Factory($engine, $finder);

// render the template file and echo it
echo $factory->make('hello', ['a' => 1, 'b' => 2])->render();

You can enjoy almost all the features of blade with this extension. However, remember that some of exclusive features are removed.

You can't:

  • use @inject @can @cannot @lang in a template file
  • add any events or middleawares

Documentation: http://laravel.com/docs/5.4/blade

Thanks for Laravel and it authors. That is a great project.

For ThinkPHP

https://github.com/terranc/think-blade

Reference

XiaoLer/blade