Mise à jour CodeIgniter 3.x vers 4.x

Par T-PHP dans Développement

Vous utilisez le framework php CodeIniter ? Découvrez comment mettre à jour votre version 3.x vers la version 4.x

CodeIgniter 4 est une réécriture complète du framework et n'est pas rétrocompatible. Il est plus approprié de penser à convertir votre application, plutôt qu'à la mettre à niveau. Une fois que vous aurez fait cela, la mise à jour d'une version de CodeIgniter 4 à la suivante sera simple.

La philosophie "lean, mean and simple" (allégé, moyen et simple) a été retenue, mais la mise en œuvre présente de nombreuses différences par rapport à CodeIgniter 3.

Il n'y a pas de liste de contrôle en 12 étapes pour la mise à niveau. Commencez plutôt par effectuer une copie de CodeIgniter 4 dans un nouveau dossier de projet, quelle que soit la manière dont vous souhaitez l'installer et l'utiliser, puis convertissez et intégrez les composants de votre application au fur et à mesure. Nous allons essayer de souligner les considérations les plus importantes ici.Toutes les bibliothèques de Code Igniter 3 n'ont pas été portées ou réécrites pour Code Igniter 4 !

Téléchargements

Code Igniter 4 est toujours disponible sous forme de fichier zip ou tarball prêt à l'emploi, qui comprend le guide de l'utilisateur (bien que dans le sous-dossier docs
Il peut également être installé à l'aide de Composer

Namespaces

Code Igniter 4 est conçu pour PHP7.2+, et tout dans le cadre est à espacement de noms, sauf les assistants.

Structure de l'application

Le dossier application est renommé en app et le cadre comporte toujours des dossiers système, avec la même interprétation qu'auparavant

Le cadre prévoit désormais un dossier public, destiné à servir de racine de document pour votre application
Il existe également un dossier inscriptible, qui contient les données du cache, les journaux et les données de session

Le dossier de l'application ressemble beaucoup à celui de l'application pour Code Igniter 3, avec quelques changements de nom, et quelques sous-dossiers déplacés vers le dossier inscriptible

Il n'y a plus de dossier d'application/coeur imbriqué, car nous avons un mécanisme différent pour étendre les composants du cadre (voir ci-dessous)

Class

Il n'y a plus de "super-objet" CodeIgniter, avec des références de composants de cadre injectées par magie comme propriétés de votre contrôleur. Les classes sont instanciées si nécessaire, et les composants sont gérés par les services

Le chargeur de classes gère automatiquement la localisation des classes de style PSR4, dans les espaces de noms de premier niveau de l'application (App) et du système (CodeIgniter) ; avec la prise en charge de l'autochargement par le compositeur, et même en utilisant des devinettes pour trouver vos modèles et bibliothèques s'ils sont dans le bon dossier, même s'ils ne sont pas à l'espacement des noms

Vous pouvez configurer le chargement de la classe pour qu'elle supporte la structure d'application qui vous convient le mieux, y compris le style "HMVC".

Controllers

Les contrôleurs étendent \CodeIgniter\Controller au lieu de CI_Controller

Ils n'utilisent plus de constructeur (pour invoquer la "magie" de l'IC), sauf si celui-ci fait partie d'un contrôleur de base que vous fabriquez

CodeIgniter fournit des objets de demande et de réponse avec lesquels vous pouvez travailler - plus puissants que le CI3-way

Si vous voulez un contrôleur de base (MY_Controller dans CI3), faites-le où vous voulez, par exemple BaseController étend Controller, et ensuite demandez à vos contrôleurs de l'étendre

Models

Les modèles s'étendent \CodeIgniter\Model au lieu de CI_Model

Le modèle CodeIgniter4 a beaucoup plus de fonctionnalités, notamment la connexion automatique à la base de données, le CRUD de base, la validation du modèle et la pagination automatique

CodeIgniter 4 dispose également de la classe Entity sur laquelle vous pouvez vous appuyer, pour une mise en correspondance plus riche des données avec les tables de votre base de données

Au lieu du $this->load->model(x) de CodeIgniter 3, vous utiliserez désormais $this->x = new X() ;, en respectant les conventions d'espacement des noms suivantes pour votre composant

Views

Vos vues ressemblent beaucoup à celles d'avant, mais elles sont invoquées différemment ... au lieu de $this->load->view(x) de CI3 ; vous pouvez utiliser echo view(x) ;
CodeIgniter 4 supporte les "cellules" de vue, pour construire votre réponse en morceaux

L'analyseur de modèles est toujours là, mais il a été considérablement amélioré

Libraries

Vos classes d'application peuvent toujours aller dans les applications et les bibliothèques, mais elles n'ont pas à le faire.

Au lieu de $this->load->library(x) de CI3, vous pouvez maintenant utiliser $this->x = new X() ;, en respectant les conventions d'espacement des noms suivantes pour votre composant

Helpers

Les aides sont à peu près les mêmes qu'auparavant, bien que certaines aient été simplifiées

Traduction rapide de https://codeigniter4.github.io/CodeIgniter4/installation/upgrade_4xx.html


Commentaires

Ajouter un commentaire

T-PHP

PHP, SEO, LINUX

E-Commerce, Nouvelles technologies

Rechercher