Mise a jour de CodeIgniter de la version 1.7.3 a 2.0.1
CodeIgniter est un framework php qui a pour principal caractéristique d'être leger (enfin plus que les autres) et plutôt simple a utiliser. Ce n'est pas vraiment un concurrent de frameworks comme Simfony ou Zend Framework qui sont plus des usines a gaz visant a concurrencer des framework comme ceux existant en Java et non a aider/simplifier le travail du developpeur. En dehors du fait que ZF soit issue de l'entreprise qui developpe PHP, je n'aime vraiment pas ce « truc », je le trouve vraiment pas fini (au départ, je pensais que le probleme venait de moi, et puis finalement, des amis Québécois m'ont confortés dans ma vision).
La nouveauté de la nouvelle version de CodeIgniter, c'est qu'elle intégre maintenant 'que' php5 (donc OOP). Son Fork, kohana l'intégrait, lui depuis le debut... m'enfin passons.
Il faut savoir que les mises a jours de CodeIgniter sont beaucoup plus rares, notamment par rapport a drupal par exemple (la communauté est également drôlement moins importante !). Donc quand il en sort, on peut se permettre (on doit?) de faire les mises a jours. Ce changement de version est spécial puisque comme mentionné plus haut, il retire le support de PHP4 et ajoute enfin les aspects de programmation orienté objet permis par PHP5. Donc si votre code est très laid, ce n'est pas la peine (remarquez, on peut également faire du code assez laid avec la version 5).
Bref, on remarque vite lors de la mise a jour que la doc pour aider est assez pauvre... d'ou ce billet.J'ai décomposé mes étapes pour la mise a jour d'un projet perso. Ce dernier est assez simple, utilise déjà pas mal (voir tous) les concept php orienté objet (enfin le plus possible en fait). Et dans ce cas ne devais pas poser de probleme a la lecture de la documentation officielle. Il y en a eu (quasiment a chaque étape) et SVN m'a permis de gagner bien du temps (j'ai fait pas mal de roll back !).
Enfin, voici ce qui nous intéresse, les étapes que j'ai suivis :
1 → Sortir (copier/coller) le repertoire system/application a la racine (de manière a avoir /application au même niveau que /system).
2 → Remplacer /system de la version actuelle (dans mon cas 1.7.3) par le nouveau de la version que l'on aura télécharger sur le site officiel (http://www.codeigniter.com), c'est a dire dans mon cas la version 2.0.1
3 → Remplacer le fichier index.php de la racine par celui de la nouvelle version.
4 → Renommer le fichier application/config/autoload.php et copier celui de la nouvelle version.
5 → Ouvrir les 2 fichiers d'autoload, y remplacer « APPPATH.'third-party' » (ligne 40) par rien (on aura alors « array() ») et remplacer les lignes utiles a partir de l'ancien fichier (libraries, helpers, models, etc...). ATTENTION : certains éléments n'ont plus les mêmes nom (par exemple 'validation' devient 'form_validation').
6 → Remplacer pour tous les controlleurs le « extends Controller » par « extends CI_Controller ».
7 → Faire de même avec les modeles de manière a avoir « extends CI_Model ».
8 → Remplacer dans les fonctions du code du repertoire application tous les constructeurs la ligne « parent ::[...] » par « parent ::__construct() ; ».
Voila pour la recette, j'espère qu'elle pourra aider certain d'entre vous...
