예제 #1
0
<?php

/*
Plugin Name: WP Blade
Plugin URI: 'Build wordpress theme with blade templating'
Description:
Version: 0.1
Author: Mithu A Quayium
Author URI: http://www.cybercraftit.com
License: GPLv2 or later
Text Domain: wpb
*/
require_once 'vendor/autoload.php';
add_action('init', function () {
    $path = [get_stylesheet_directory()];
    $cachePath = dirname(__FILE__) . '/cache_path';
    $compiler = new \Xiaoler\Blade\Compilers\BladeCompiler($cachePath);
    $engine = new \Xiaoler\Blade\Engines\CompilerEngine($compiler);
    $finder = new \Xiaoler\Blade\FileViewFinder($path);
    $finder->addExtension('txt');
    $factory = new \Xiaoler\Blade\Factory($engine, $finder);
    add_filter('template_include', function ($template) use($factory) {
        echo $factory->make(str_replace('.php', '', basename($template)), ['a' => 1, 'b' => 2])->render();
    }, 99);
});
예제 #2
0
<?php

// DIC configuration
$container = $app->getContainer();
// view renderer
$container['blade'] = function ($c) {
    $settings = $c->get('settings')['blade'];
    $compiler = new Xiaoler\Blade\Compilers\BladeCompiler($settings['cache_path']);
    $engine = new Xiaoler\Blade\Engines\CompilerEngine($compiler);
    $finder = new Xiaoler\Blade\FileViewFinder($settings['view_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
    return new Xiaoler\Blade\Factory($engine, $finder);
};
// monolog
$container['logger'] = function ($c) {
    $settings = $c->get('settings')['logger'];
    $logger = new Monolog\Logger($settings['name']);
    $logger->pushProcessor(new Monolog\Processor\UidProcessor());
    $logger->pushHandler(new Monolog\Handler\StreamHandler($settings['path'], Monolog\Logger::DEBUG));
    return $logger;
};