|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Copyright © 2024 ExacTI Technology Solutions. All rights reserved.
|
|
|
|
* GPLv3 General License.
|
|
|
|
* https://exacti.com.br
|
|
|
|
* Phacil PHP Framework - https://github.com/exacti/phacil-framework
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Phacil\Framework\templateEngines;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.0.0
|
|
|
|
* @package Phacil\Framework\templateEngines
|
|
|
|
*/
|
|
|
|
class Twig {
|
|
|
|
|
|
|
|
static private $TwigFolderLoad;
|
|
|
|
|
|
|
|
static private $TwigLoaderFilesystem;
|
|
|
|
|
|
|
|
static private $TwigEnvironment;
|
|
|
|
|
|
|
|
static private $TwigSimpleFilter;
|
|
|
|
|
|
|
|
static private $TwigExtensionDebug;
|
|
|
|
|
|
|
|
static private $registered;
|
|
|
|
|
|
|
|
/** @return void */
|
|
|
|
public static function registryTwigVersion() {
|
|
|
|
if(self::$registered)
|
|
|
|
return;
|
|
|
|
|
|
|
|
$preferenceDIObj = \Phacil\Framework\templateEngines\Twig\Api\Extension\TranslateInterface::class;
|
|
|
|
if (version_compare(phpversion(), '7.2.5', '>') == false) {
|
|
|
|
self::define('TwigFolderLoad', 'Twig1x');
|
|
|
|
self::define('TwigLoaderFilesystem', 'Twig_Loader_Filesystem');
|
|
|
|
self::define('TwigEnvironment', 'Twig_Environment');
|
|
|
|
self::define('TwigSimpleFilter', 'Twig_SimpleFilter');
|
|
|
|
self::define('TwigExtensionDebug', 'Twig_Extension_Debug');
|
|
|
|
|
|
|
|
if (!\Phacil\Framework\Registry::checkPreferenceExist($preferenceDIObj)) {
|
|
|
|
\Phacil\Framework\Registry::addDIPreference($preferenceDIObj, \Phacil\Framework\templateEngines\Twig\Extension\Legacy\Translate::class);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
self::define('TwigLoaderFilesystem', '\Twig\Loader\FilesystemLoader');
|
|
|
|
self::define('TwigEnvironment', '\Twig\Environment');
|
|
|
|
self::define('TwigSimpleFilter', '\Twig\TwigFilter');
|
|
|
|
self::define('TwigExtensionDebug', '\Twig\Extension\DebugExtension');
|
|
|
|
|
|
|
|
if (!\Phacil\Framework\Registry::checkPreferenceExist($preferenceDIObj)) {
|
|
|
|
\Phacil\Framework\Registry::addDIPreference($preferenceDIObj, 'Phacil\Framework\templateEngines\Twig\Extension\Translate');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (self::getVar('TwigFolderLoad')) {
|
|
|
|
include_once self::getVar('TwigFolderLoad') . "/vendor/autoload.php";
|
|
|
|
}
|
|
|
|
|
|
|
|
self::$registered = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param string $var
|
|
|
|
* @param string $value
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
protected static function define($var, $value) {
|
|
|
|
if(property_exists(__CLASS__, $var))
|
|
|
|
self::$$var = $value;
|
|
|
|
}
|
PHP SESSION Prefix and IP check, engine constants and user_constants as a function for better memory usage, add SQLite 3 driver, new loader for aditional database method, new REST HTPP method check, updated template engines: Mustache 2.13, Smarty 3.1.34, Twig 1.42.5, Twig 2.12.5, add Twig 3 support to PHP 7.2+, define Dwoo template as deprecated, Caches and captcha bugfix in PHP 5.4.x
5 years ago
|
|
|
|
|
|
|
/**
|
|
|
|
* @param string $var
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public static function getVar($var) {
|
|
|
|
return property_exists(__CLASS__, $var) ? self::$$var : null;
|
|
|
|
}
|
PHP SESSION Prefix and IP check, engine constants and user_constants as a function for better memory usage, add SQLite 3 driver, new loader for aditional database method, new REST HTPP method check, updated template engines: Mustache 2.13, Smarty 3.1.34, Twig 1.42.5, Twig 2.12.5, add Twig 3 support to PHP 7.2+, define Dwoo template as deprecated, Caches and captcha bugfix in PHP 5.4.x
5 years ago
|
|
|
}
|