A super easy PHP Framework for web development!
https://github.com/exacti/phacil-framework
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.6 KiB
80 lines
2.6 KiB
<?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;
|
|
}
|
|
|
|
/**
|
|
* @param string $var
|
|
* @return mixed
|
|
*/
|
|
public static function getVar($var) {
|
|
return property_exists(__CLASS__, $var) ? self::$$var : null;
|
|
}
|
|
} |