CMS Automne http://www.automne-cms.org/forum/ |
|
Ajout d'une classe dans le répertoire classes de automne http://www.automne-cms.org/forum/viewtopic.php?f=2&t=2673 |
Page 1 sur 1 |
Auteur: | pdub75 [ Mar Fév 19, 2013 2:41 pm ] |
Sujet du message: | Ajout d'une classe dans le répertoire classes de automne |
Bonjour, je souhaite ajouter une classe à automne. Mais surtout, j'aimerais pouvoir créer des objets de cette classe sans devoir faire d'INCLUDE de classe dans les scripts qui utiliseront cette classe. Autrement dit j'aimerais profiter de l'autoloader de classes de automne. Comment cela est-il possible ? A quel endroit dans automne dois-je ajouter la prise en compte de ma nouvelle classe ? Ou si vous préferez, où se trouve l'autoloader de classes de automne ? Un grand merci à qui me renseignera |
Auteur: | mediaboost [ Jeu Fév 21, 2013 8:59 pm ] |
Sujet du message: | Re: Ajout d'une classe dans le répertoire classes de automne |
Bonsoir question intéressante .. mais un peu laborieuse il faut que tu ajoutes dans les tables "modules" et "messages " de la bdd les informations de ta classe avec le nom de ta classe qui est considéré comme un module Code : INSERT INTO `modules` (`label_mod`, `codename_mod`, `administrationFrontend_mod`, `hasParameters_mod`, `isPolymod_mod`) VALUES (1, 'monmodule', 'index.php', 0, 0); INSERT INTO `messages` (`id_mes`, `module_mes`, `language_mes`, `message_mes`) VALUES (1, 'monmodule', 'en', 'Mon Module'); INSERT INTO `messages` (`id_mes`, `module_mes`, `language_mes`, `message_mes`) VALUES (1, 'monmodule', 'fr', 'Mon Module'); ensuite tu crées ta classes (en respectant le CMS_module_ Code : class CMS_module_monmodule extends CMS_module { } la classe doit surcharger la méthode load afin d'insérer ta classe dans la pile autoload Code : /**
* Module autoload handler * * @param string $classname the classname required for loading * @return string : the file to use for required classname * @access public */ public function load($classname) { static $classes; if (!isset($classes)) { $classes = array( 'maclasse' => PATH_MODULES_FS.'/'.MOD_MONMODULE_CODENAME.'/ma_classe_perso.php' ); } $file = ''; if (isset($classes[io::strtolower($classname)])) { $file = $classes[io::strtolower($classname)]; } return $file; } |
Page 1 sur 1 | Le fuseau horaire est UTC [Heure d’été] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |