slam4:php:codeigniter:controller

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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/03 01:09] – [Création d'un contrôleur de base personnalisé par surdéfinition de CI_Controller] jcheronslam4:php:codeigniter:controller [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== Astuces ====== +====== Schéma général, Controllers, Hooks ======
-<html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter" class="wikilink1" title="slam4:php:codeigniter"><< Introduction à CodeIgniter</a></div></html><html><div class="btn"><a href="/doku.php?id=slam4:php:codeigniter:libraries" class="wikilink1" title="slam4:php:codeigniter:libraries">Bibliothèques >></a></div></html>+
  
-  - [[slam4:php:codeigniter|Introduction à CodeIgniter]] 
-  - Helpers 
-  - [[slam4:php:codeigniter:libraries|Bibliothèques]] 
-  - [[slam4:php:codeigniter:session|Sessions CodeIgniter]] 
-  - [[slam4:php:codeigniter:validation|Validation des formulaires]] 
-  - [[slam4:php:codeigniter:orm|ORM IgnitedRecord]] 
-  - [[slam4:php:codeigniter:doctrine|Doctrine]] 
-  - [[slam4:php:codeigniter:javascript|Javascript et codeIgniter]] 
  
- +  [[https://ellislab.com/codeigniter/user-guide/overview/appflow.html|Schéma général]] 
-==== Création d'un contrôleur de base personnalisé par surdéfinition de CI_Controller ==== +  [[https://ellislab.com/codeigniter/user-guide/general/controllers.html|Controllers]] 
- +  * [[https://ellislab.com/codeigniter/user-guide/general/hooks.html|Hooks]]
-Le contrôleur de base de codeIgniter correspond à la classe **CI_Controller** localisée dans system/core. +
- +
- +
-=== 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::__construct(); +
-+
-+
- +
-</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'application : +
- +
-Ajouter le code suivant à la fin de config.php, en utilisant la fonction php **_autoload()** +
- +
- +
-<sxh php;title:application/config/config.php> +
-//Fin de config.php +
-function __autoload($class){ +
- if(strpos($class, 'CI_') !== 0){ +
- $paths = array(APPPATH . 'core/', APPPATH . 'controllers/'); +
- foreach($paths as $path){ +
- if (file_exists($path $class . EXT)){ +
- @include_once( $path . $class . EXT ); +
- break; +
-+
-+
-+
-+
-</sxh> +
- +
-Toutes les classes (ne commençant pas par le préfixe CI_) et présentes dans application/controller ou application/core seront automatiquement chargées. +
- +
- +
-===== Contrôleur personnalisé et complétion de code  ===== +
- +
-L’inconvénient majeur de php est l'absence de typage des variables, combiné dans le cas présent au fonctionnement même de codeIgniter, les 2 réunis font qu'aucune complétion n'est présente par défaut sur les principaux objets accessibles depuis un contrôleur : +
-  * les librairies chargées (doctrine, jsutils...) +
-  * le loader load, l'objet ci... +
- +
-Pour remédier à ce manque et avoir l’auto-complétion Eclipse sur ces objets utilisés fréquemment, il suffit de surcharger CI_Controller, de définir explicitement les membres de données existants, et de les commenter en style javadoc.\\ +
-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::__construct(); +
-+
-+
-</sxh>+
  • slam4/php/codeigniter/controller.1417565340.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)