<?phpnamespace frameworkcore;
class Framework{ //Initialisé dans la méthode constructeur public function __construct() { $this->autoload(); $this->initMCA(); $this->dispatch(); public function autoload() { //Remarque : Si le paramètre d'une fonction est une fonction de rappel, écrivez simplement le nom de la fonction directement // Méthode d'objet spl_autoload_register(array($this,"autoloader")); chargement et exécution de la fonction public function autoloader($className) { echo 'Nous avons besoin de :'.$className.'<br>'; / /Créer un cas particulier pour les classes tierces if($className=='Smarty') { require_once './framework/vendor/smarty/Smarty.class.php'; return; Classes dans l'espace de noms, séparées $arr = explosive('\', $className); //2. sur le premier élément if($arr[0] == 'framework'){ $ basic_path = './'; }else{ $basic_path = './application/'; en utilisant en utilisant ' s } à travers en utilisant à travers à travers ‐ ‐ à ‐ ‐ ‐ } //4. Déterminer le nom du fichier // Déterminer le suffixe : le suffixe du fichier de classe : .class.php, le suffixe du fichier d'interface : .interface.php //frameworkda oI_DAO, déterminez si le dernier élément commence par I_ if(substr($arr [count($arr)-1], 0,2)=='I_'){ $fix = ' }.$class_file = $basic_path.$sub_path.$fix; //5. Chargement de la classe //Si elle n'est pas définie selon les règles de notre espace de noms, cela signifie que ce n'est pas une classe que nous devons charger, donc il n'y en a pas. besoin de le charger if(file_exists($class_file)) { require_once $class_file; ‐ ‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ $m = isset($_GET['m'])?$_GET['m']:'home'; definition('MODULE', $m); //À quel contrôleur accéder $c = isset($_GET[ 'c'])?$_GET['c']:'Index'; definition('CONTROLLER', $c); //À quelle opération du contrôleur est accédé ? $a = isset($_GET['a'] )? $_GET['a']:'indexAction'; definition('ACTION', $a); } //Instancier l'objet et appeler la méthode public function dispatch() { $controller_name = MODULE.'controller\'. CONTROLLER.' Controller '; // Charge d'abord la classe du contrôleur, puis instancie l'objet $ controller = new $ controller_name; // La méthode d'appel du contrôleur $ a = action; }
Re-téléchargez smarty et vérifiez s'il y a un dossier sysplugins dans le smart de votre projet et s'il n'y a pas de dossier plugins, alors passez l'examen.