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.
		
		
		
		
		
			
		
			
				
					
					
						
							66 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
	
	
							66 lines
						
					
					
						
							2.3 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;
 | 
						|
 | 
						|
class Twig {
 | 
						|
 | 
						|
    static private $TwigFolderLoad;
 | 
						|
 | 
						|
    static private $TwigLoaderFilesystem;
 | 
						|
 | 
						|
    static private $TwigEnvironment;
 | 
						|
 | 
						|
    static private $TwigSimpleFilter;
 | 
						|
    
 | 
						|
    static private $TwigExtensionDebug;
 | 
						|
 | 
						|
    static private $registered;
 | 
						|
 | 
						|
    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;
 | 
						|
    }
 | 
						|
 | 
						|
    protected static function define($var, $value) {
 | 
						|
        if(property_exists(__CLASS__, $var))
 | 
						|
            self::$$var = $value;
 | 
						|
    }
 | 
						|
 | 
						|
    public static function getVar($var) {
 | 
						|
        return property_exists(__CLASS__, $var) ? self::$$var : null;
 | 
						|
    }
 | 
						|
} |