Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
6 / 6
CRAP
100.00% covered (success)
100.00%
20 / 20
BladeStringRenderer
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
6 / 6
8
100.00% covered (success)
100.00%
20 / 20
 __construct
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
4 / 4
 render
100.00% covered (success)
100.00%
1 / 1
3
100.00% covered (success)
100.00%
10 / 10
 getTmpFilePath
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setTmpFilePath
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getFiles
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setFiles
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
<?php
/**
 * Part of the Robin Radic's PHP packages.
 *
 * MIT License and copyright information bundled with this package
 * in the LICENSE file or visit http://radic.mit-license.com
 */
namespace Radic\BladeExtensions\Renderers;
use Illuminate\View\Compilers\BladeCompiler;
use Illuminate\Contracts\Filesystem\Filesystem;
/**
 * This is the BladeStringRenderer.
 *
 * @package        Radic\BladeExtensions
 * @author         Robin Radic
 * @license        MIT License
 * @copyright      2015, Robin Radic
 * @link           https://github.com/robinradic
 */
class BladeStringRenderer
{
    /**
     * @var \Illuminate\View\Compilers\BladeCompiler
     */
    protected $compiler;
    /**
     * Path to the temporary file
     * @var string
     */
    protected $tmpFilePath;
    /**
     * @var \Caffeinated\Beverage\Filesystem
     */
    protected $files;
    /**
     * @param \Illuminate\View\Compilers\BladeCompiler    $compiler
     * @param \Illuminate\Contracts\Filesystem\Filesystem $files
     */
    public function __construct(BladeCompiler $compiler, Filesystem $files)
    {
        $this->compiler = $compiler;
        $this->files = $files;
        $this->tmpFilePath = storage_path(uniqid(time(), true));
    }
    /**
     * render
     *
     * @param       $string
     * @param array $vars
     * @return string
     */
    public function render($string, array $vars = array())
    {
        $this->files->put($this->tmpFilePath, $this->compiler->compileString($string));
        if (is_array($vars) && !empty($vars)) {
            extract($vars);
        }
        ob_start();
        include($this->tmpFilePath);
        $var=ob_get_contents();
        ob_end_clean();
        $this->files->delete($this->tmpFilePath);
        return $var;
    }
    /**
     * get tmpFilePath value
     *
     * @return mixed
     */
    public function getTmpFilePath()
    {
        return $this->tmpFilePath;
    }
    /**
     * Set the tmpFilePath value
     *
     * @param mixed $tmpFilePath
     * @return BladeStringRenderer
     */
    public function setTmpFilePath($tmpFilePath)
    {
        $this->tmpFilePath = $tmpFilePath;
        return $this;
    }
    /**
     * get files value
     *
     * @return \Caffeinated\Beverage\Filesystem
     */
    public function getFiles()
    {
        return $this->files;
    }
    /**
     * Set the files value
     *
     * @param \Caffeinated\Beverage\Filesystem $files
     * @return BladeStringRenderer
     */
    public function setFiles(Filesystem $files)
    {
        $this->files = $files;
        return $this;
    }
}