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:: | + | |
| - | } | + | |
| - | } | + | |
| - | </ | + | |