Gii est un générateur de code basé sur le web pour le framework Yii2 qui accélère le développement. Cet article fournit un guide technique actualisé pour implémenter un système CRUD sur une seule page en utilisant l’extension AjaxCrud, une solution idéale pour les applications nécessitant une haute interactivité.
Gii pour Yii2 est un outil de développement essentiel. Par défaut, Gii fournit des générateurs pour les modèles, les formulaires, les contrôleurs et les opérations CRUD conventionnelles. Cependant, le modèle par défaut de Gii exécute chaque action CRUD sur une page séparée. Pour les développeurs modernes qui privilégient l’expérience utilisateur, l’implémentation du CRUD sur une seule page avec Ajax est la solution.
Pour répondre à ce besoin, l’extension yii2-ajaxcrud de Johnitvn sert de réponse. Cette extension permet à toutes les opérations—créer, lire, mettre à jour, supprimer—de s’exécuter dans une boîte de dialogue modale sur une seule vue sans rechargement de page. Voici les étapes d’implémentation mises à jour.
Étapes pour Implémenter le CRUD sur Une Seule Page dans Yii2
Assurez-vous que votre environnement de développement Yii2 (avancé ou basique) est actif. Ensuite, suivez attentivement ces procédures techniques.
1. Installer l’Extension AjaxCrud
Installez l’extension via Composer. Exécutez la commande suivante dans votre terminal, dans le répertoire du projet :
composer require johnitvn/yii2-ajaxcrud "~2.0"2. Gérer les Ressources d’Icônes (Font Awesome)
L’extension nécessite Font Awesome. Vous pouvez utiliser le package yii2-icons de Kartik. Ajoutez la ligne suivante à votre fichier composer.json :
"kartik-v/yii2-icons": "*"Ensuite, exécutez composer update. Une alternative est d’inclure Font Awesome via CDN dans la mise en page principale de votre projet.
3. Vérifier le Menu dans Gii
Accédez à Gii via votre navigateur (ex. : http://localhost/projet/web/index.php?r=gii). Si l’installation est réussie, une nouvelle option nommée « Ajax CRUD Generator » apparaîtra.

4. Créer un Modèle à partir d’une Table
Créez une classe modèle en utilisant le Model Generator standard. Par exemple, créez un modèle Country à partir de la table country dans votre base de données.

5. Générer le CRUD avec l’Ajax CRUD Generator
Sélectionnez le menu « Ajax CRUD Generator ». Remplissez le formulaire avec la Classe Modèle (ex. : app\models\Country) et la Classe Contrôleur (ex. : app\controllers\CountryController). Ensuite, prévisualisez et générez.

6. Test Initial et Identification des Problèmes
Accédez au contrôleur créé (ex. : http://localhost/projet/web/index.php?r=country). Une grille de données apparaîtra, mais les boutons d’action peuvent ne pas fonctionner de manière optimale en raison des ressources d’icônes.
7. Enregistrer les Ressources de Font Awesome
Modifiez le fichier de vue index généré (généralement dans views/country/index.php). Ajoutez le code suivant en haut après les déclarations use :
use kartik\icons\FontAwesomeAsset;
FontAwesomeAsset::register($this);8. Vérification Finale
Rechargez la page CRUD. Désormais, les fonctionnalités de Création, Mise à jour, Visualisation et Suppression apparaîtront dans des boîtes de dialogue modales Ajax. Ce processus est rapide et s’effectue sans quitter la page principale, offrant une expérience utilisateur plus fluide. C’est un avantage clé du CRUD sur une seule page.

Conclusion et Recommandations de Développement
La combinaison de Gii Yii2 et de l’extension AjaxCrud produit une solution de développement trés efficace. Cette implémentation du CRUD sur une seule page est adaptée aux tableaux de bord d’administration et aux applications nécessitant une interaction en temps réel. Consultez toujours la documentation officielle de l’extension pour des configurations supplémentaires. De plus, assurez-vous d’effectuer des tests approfondis dans un environnement de staging avant le déploiement en production.
En suivant ce guide, les développeurs peuvent créer des interfaces de gestion de données réactives et modernes. Cette approche exploite pleinement la vitesse de Gii et l’agilité de la technologie Ajax pour une expérience utilisateur supérieure.


