Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slam4:php:codeigniter:controller [2014/12/02 19:39] – [Contrôleur personnalisé et complétion de code] jcheron | slam4:php:codeigniter:controller [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== |
- | < | + | |
- | - [[slam4: | ||
- | - Helpers | ||
- | - [[slam4: | ||
- | - [[slam4: | ||
- | - [[slam4: | ||
- | - [[slam4: | ||
- | - [[slam4: | ||
- | - [[slam4: | ||
- | + | | |
- | ==== Création d'un contrôleur de base personnalisé et Extension de CI_Controller ==== | + | * [[https://ellislab.com/codeigniter/user-guide/ |
- | + | * [[https://ellislab.com/codeigniter/user-guide/general/hooks.html|Hooks]] | |
- | Le contrôleur de base de codeIgniter correspond à la classe | + | |
- | + | ||
- | + | ||
- | === Classe dérivée === | + | |
- | + | ||
- | <sxh php;title:application/controller/baseCtrl.php> | + | |
- | class BaseCtrl extends \CI_Controller{ | + | |
- | + | ||
- | public function __construct(){ | + | |
- | // TODO Auto-generated method stub | + | |
- | parent:: | + | |
- | } | + | |
- | } | + | |
- | + | ||
- | </sxh> | + | |
- | + | ||
- | === Modification de config.php === | + | |
- | + | ||
- | Il est nécessaire de modifier le fichier **config.php** pour que la classe **BaseCtrl** soit automatiquement chargée au lancement de l' | + | |
- | + | ||
- | Ajouter le code suivant à la fin de config.php, en utilisant la fonction php **_autoload()** | + | |
- | + | ||
- | + | ||
- | <sxh php; | + | |
- | //Fin de config.php | + | |
- | function __autoload($class){ | + | |
- | if(strpos($class, | + | |
- | $paths = array(APPPATH . 'core/', APPPATH . 'controllers/'); | + | |
- | foreach($paths as $path){ | + | |
- | if (file_exists($path | + | |
- | @include_once( $path . $class . EXT ); | + | |
- | break; | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Contrôleur personnalisé et complétion de code ===== | + | |
- | + | ||
- | L’inconvénient majeur de php est l' | + | |
- | * les librairies chargées (doctrine, jsutils...) | + | |
- | * le loader load, l' | + | |
- | + | ||
- | Pour remédier à ce manque et avoir l’auto-complétion Eclipse sur ces objets utilisés fréquemment, | + | |
- | Eclipse utilisera les commentaires de type @var pour proposer l’auto-complétion sur les membres concernés. | + | |
- | + | ||
- | <sxh php;title:application/controller/baseCtrl.php> | + | |
- | <?php | + | |
- | + | ||
- | class BaseCtrl extends \CI_Controller{ | + | |
- | + | ||
- | /** | + | |
- | * @var CI_JsUtils | + | |
- | */ | + | |
- | private $jsutils; | + | |
- | + | ||
- | /** | + | |
- | * @var CI_Base | + | |
- | */ | + | |
- | private $CI; | + | |
- | + | ||
- | /** | + | |
- | * @var Doctrine | + | |
- | */ | + | |
- | private $doctrine; | + | |
- | + | ||
- | /** | + | |
- | * @var CI_Loader | + | |
- | */ | + | |
- | private $load; | + | |
- | + | ||
- | public function __construct(){ | + | |
- | // TODO Auto-generated method stub | + | |
- | parent:: | + | |
- | } | + | |
- | } | + | |
- | </ | + |