CactusCrew

CactusCrew
 
Autoload, à utiliser avec parcimonie

La méthode __autoload permet de s'épargner d'écrire les require de chaque classe utilisées dans une appli.

Avantages
  • On gagne en temps de développement à ne plus taper les require et autres include.
  • ... heu j'en vois pas d'autres
Inconvéniant
  • L'autoload alourdi l'exécution du code...
Mon astuce

Combiner le gain de temps lors du développement, avec autoload, avec les meilleures performances d'un bête require.
Cet autoload génére un Notice, qui m'indique à quel endroit nous avons de la classe à charger aussi le require "pret à coller" qui va bien.
Je n'ai plus qu'a copier/coller le require à l'endroit indiqué.

Le code de mon autoload
<?php
require 'Zend/Loader.php';
function __autoload($S_className) {
	$A_backTrace	= debug_backtrace();
	$S_message		= 'Autoload class '.$S_className.' : <br/>';
	$S_message		.= '<strong> require \''.str_replace('_', DIRECTORY_SEPARATOR, $S_className).'.php\';</strong><br/>';
	if (isset($A_backTrace[0]{'file'})) {
		$S_message		.= 'dans le fichier '.$A_backTrace[0]{'file'}.' à la ligne '.$A_backTrace[0]{'line'};
		
	}
	trigger_error($S_message, E_USER_NOTICE);
	
	Zend_Loader::loadClass($S_className);
 
}
?>
Exemple de code pendant le développement
<?php
class Form_Inscription extends HTML_QuickForm {
 
	public function __construct() {
		$this->addElement(	
			new HTML_QuickForm_header(
				'titre', 
				Zend_Registry::get('trad')->_("Inscription")
			)
		);
	}
}
?>
Notice

Code "finalisé"
<?php
require_once 'HTML/QuickForm.php';
require_once 'HTML/QuickForm/header.php';
 
class Form_Inscription extends HTML_QuickForm {
 
	public function __construct() {
		$this->addElement(	
			new HTML_QuickForm_header(
				'titre', 
				Zend_Registry::get('trad')->_("Inscription")
			)
		);
	}
}
?>
Conclusion

On pourrait imaginer ecrire automatiquent le require au bon endroit, dans le bon fichier... mais bon, ça représente peut être autant d'interêt que de tirer du canon pour tuer un moustique. ;)

 
PDF
« retour à l'accueil
Commentaires
1.   Tatane  |  mercredi 3 octobre 2007 à 10:29

<accent corse>
mais qui c'est cuilà ? "parcimônii ?"
</accent corse>

 
« retour à l'accueil
Trackbacks

Aucun trackback.

Les trackbacks pour ce billet sont fermés.

 
Ajouter un commentaire

Les commentaires pour ce billet sont fermés.