Files
nibiru-framework.com/core/l/Dwoo/ICompiler.php
2017-06-16 12:21:21 +02:00

60 lines
1.9 KiB
PHP

<?php
/**
* Copyright (c) 2013-2017
*
* @category Library
* @package Dwoo
* @author Jordi Boggiano <j.boggiano@seld.be>
* @author David Sanchez <david38sanchez@gmail.com>
* @copyright 2008-2013 Jordi Boggiano
* @copyright 2013-2017 David Sanchez
* @license http://dwoo.org/LICENSE LGPLv3
* @version 1.3.6
* @date 2017-03-21
* @link http://dwoo.org/
*/
namespace Dwoo;
use Dwoo\Security\Policy as SecurityPolicy;
/**
* Interface that represents a dwoo compiler.
* while implementing this is enough to interact with Dwoo/Templates, it is not
* sufficient to interact with Dwoo/Plugins, however the main purpose of creating a
* new compiler would be to interact with other/different plugins, that is why this
* interface has been left with the minimum requirements.
* This software is provided 'as-is', without any express or implied warranty.
* In no event will the authors be held liable for any damages arising from the use of this software.
*/
interface ICompiler
{
/**
* Compiles the provided string down to php code.
*
* @param Core $core
* @param ITemplate $template the template to compile
*
* @return string a compiled php code string
*/
public function compile(Core $core, ITemplate $template);
/**
* Adds the custom plugins loaded into Dwoo to the compiler so it can load them.
*
* @see Core::addPlugin
*
* @param array $customPlugins an array of custom plugins
*/
public function setCustomPlugins(array $customPlugins);
/**
* Sets the security policy object to enforce some php security settings.
* use this if untrusted persons can modify templates,
* set it on the Dwoo object as it will be passed onto the compiler automatically
*
* @param SecurityPolicy $policy the security policy object
*/
public function setSecurityPolicy(SecurityPolicy $policy = null);
}