Surclassement des class du core par celle du template

Petit point sur l’évolution du core, qui autorise à surclasser une classe du core par celle du template .

Généralités

Cette méthode n’est disponible qu’après le pré-chargement de la page, c’est à dire lg 25 de application_top .

Concrètement , la ressource du fichier initial a un peu évolué, et la class magique __autoload() utilise une class pour déterminer le chemin des classes, et les charger.

Cette class autoload, autorise d’ajouter des chemins après le chargement de cette librairie, et de rendre prioritaire certains chemins .

C’est le cas dans l’application_top , qui après chargement de la configuration, ajoute le chemin des classes du template .

ex :

/// ajout chemin template dans autoload clas
autoload::addPath(DIR_FS_TEMPLATES.TEMPLATE_NAME.’/’.DIR_WS_CLASSES .’%s.php’,4);

Dans cet exemple, le chemin des class est à jouté avec une priorité 4. la priorité normale (par défaut) est de 5. Il est possible de définir l’ordre principal de priorité pour chaque élément, mais pas l’ordre d’appel des éléments de priorité.

La class auoload fonctionne comme suit

Il s’agit d’une class de type singletown, aussi l’appel passe par une méthode getInstance :

autoload::getInstance();

Pour charger le chemin de la class appelante, il s’agit de la méthode getPath utilisé comme suit :

 if( ($path=autoload::getPath($strClassName)) && $path != false) include_once($path);

Si le retour est de false, aucun chemin n’a été trouvé.

Les chemins par défaut sont chargés lors de l’initialisation de la class, ces chemins sont definis pour aller chercher les class dans cet ordre, ils sont tous de priorité 5.

  • includes/classes/xxx.php
  • includes/classes/page.xxx.php
  • includes/classes/driver.xxx.php
  • includes/classes/osCSS.xxx.php
  • common/classes/xxx.php

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *