Jan
20

Créer les Modèles, les Vues et les Contrôleurs dans Yii

Vous savez que depuis quelques temps, je traduis en français la série d’articles « Learning the Yii Framework » publiée par Larry Ullman sur son site www.LarryUllman.com. Je m’excuse auprès des lecteurs qui peuvent trouver que la publication de ces articles prend un peu de temps.

Si vous préférez vous consulter la version originale de cet article, vous pouvez la retrouver sur le site de l’auteur : Creating Models, Views, and Controllers in Yii.

Voici le cinquième article de ma série sur Yii, mon framework PHP de prédilection. Dans le premier, nous avons vu comment télécharger et installer le framework. Dans le deuxième, j’ai montré comment créer une application Web basique. Dans le troisième, nous avons parcouru quelques options de configuration. Dans le quatrième, nous avons conçu la base de données utilisée par l’application qui sert d’exemple à cette série d’articles. Dans cet article, je vais vous montrer comment utiliser l’outil Gii de Yii pour créer les Modèles, les Vues et les Contrôleurs de votre application. Le pré-requis de cet article est de disposer d’une application existante que vous aurez créée en suivant les articles précédents de la série.

Yii, comme Ruby on Rails ainsi que d’autres frameworks, dispose d’outils de génération de code, de fichiers et de répertoires. Comme vous pouvez l’imaginer, c’est une énorme économie de temps. A l’origine, Yii n’offrait que l’outil est ligne de commande yiic pour ce faire (il est aussi utilisé pour la création de l’application Web elle-même). A partir de  la version 1.1.2 de Yii, vous disposez de l’interface Gii, qui s’exécute dans le navigateur. Dans cet article, j’expliquerai comment utiliser Gii pour créer les fichiers fondamentaux requis par l’application, à savoir les Modèles, les Vues et les Contrôleurs (les articles suivants aborderont la façon dont vous devrez les éditer pour les adapter à vos besoins).

Note : vous pouvez continuer à utiliser yiic en ligne de commande si vous préférez cet environnement.

Cet article propose une démonstration de Gii en utilisant l’exemple des employés et des services, avec deux tables dans la base de données que nous avons déjà créées (voir pour cela les articles précédents). Avant d’aller plus loin, je ferais quelques remarques :

  • Étant donné que Gii est capable d’effectuer un travail très important à votre place, vous avez intérêt à affiner au maximum la phase de conception de la base de données. Si vous faites cela correctement en suivant les instructions que nous allons vous donner, vous n’aurez plus besoin de réutiliser Gii pour le reste de votre projet.
  • Vous devez avoir activé Gii, comme indiqué dans le troisième article.
  • Gii est un outil très puissant. Il est préférable de le désactiver sur votre serveur de production. Vous activerez donc Gii sur le serveur de développement, puis vous le désactiverez avant de mettre le site en ligne.
  • Assurez-vous que les deux tables existent bien dans la base de données.
  • Vérifiez que vous avez bien modifié le fichier de configuration main.php pour que votre application Yii puisse se connecter à votre base de données. Consultez le troisième article de la série pour davantage de détails sur ce point.

Astuce : pour encore plus de sécurité, Gii peut être configuré pour n’être accessible qu’à partir de certaines adresses IP (c’est-à-dire la votre).

Si vous avez bien assimilé tout ce qui a été dit ci-dessus et que vous avez suivi les étapes nécessaires, vous pouvez maintenant lancer Gii dans votre navigateur. Si votre site est accessible par l’adresse www.example.com/index.php, l’outil Gii se trouve à l’adresse www.example.com/index.php/gii/. Ce format d’adresse implique que vous utilisiez le composant de gestion des URL [1] dans Yii. Si ce n’est pas le cas, vous accèderez à Gii par l’URL www.example.com/index.php?r=gii. Vous devez alors en principe vous retrouver devant une formulaire d’authentification, où vous devez saisir le mot de passe Gii (qui a été défini dans le fichier de configuration) et cliquer sur Entrer. Si le mot de passe entré est correct, vous arrivez sur une page présentant une liste d’options sous la forme de liens.

Le menu de l'outil Gii

Vous devez en premier lieu générer les Modèles. Cliquez donc sur le lien « Model Generator ». Sur la page qui s’affiche alors :

  • Saisissez Employee dans le champ Table Name.
  • Le champ Model Class a dû se remplir automatiquement lorsque vous avez renseigné le champ précédent. Si ce n’est pas le cas, saisissez-y également Employee.
  • Cliquez sur le bouton Preview. Un tableau va alors s’afficher au bas de la page, qui vous indique les fichiers qui vont être créés.
  • Cliquez sur Generate.

Astuce : Vous pouvez lancer la génération de toutes les tables de la base de données en saisissant uniquement * dans le champ Table Name.

Génération des Modèles avec Gii

Vous devez alors voir un message indiquant que le code a été créé (vous pouvez aller vérifier que le nouveau fichier existe bien par vous-même). Si vous obtenez une erreur indiquant qu’il est impossible de créer le fichier, vous devez modifier les permissions du répertoire protected/model pour autoriser le serveur Web à y créer des fichiers. Une fois que tout ceci a correctement fonctionné, répétez cette procédure pour la table Department.

Les opérations que nous venons de décrire ont créé les fichiers protected/models/Department.php et protected/model/Employee.php, que vous pouvez maintenant ouvrir pour regarder leur contenu. Avec la version 1.1.5 de Yii, ces fichiers contiennent environ 110 lignes de code. Je détaillerai le contenu de ces fichier dans un article ultérieur. Sachez simplement que vous y trouvez des méthodes définissant les règles de validation pour le Modèle, les relations entre ce Modèle et les autres, et ainsi de suite.

Ensuite, et là, le travail que Yii va effectuer pour vous est vraiment énorme, vous allez générer les fonctionnalités de CRUD. CRUD est l’acronyme de Create, Retrieve, Update et Delete. Autrement dit, toutes les actions que vous pouvez effectuer sur le contenu de votre base de données. Cliquez donc sur le lien « CRUD Generator ». Sur la page suivante :

  • Saisissez Employee dans le champ de formulaire Model Class.
  • Saisissez employee dans le champ Controller ID. En principe, ce champ a dû se remplir lorsque vous saisissiez le champ précédent. Vous remarquez que le nom de la classe Modèle a été recopié en camelCase. Ainsi, Employee est devenu employee. « Une Classe » deviendrait uneClasse en camelCase.
  • Cliquez sur le bouton Preview. Un tableau apparaît et vous montre la liste des fichiers sur le point d’être générés.
  • Cliquez sur le bouton Generate.

Astuce : Si vous n’avez pas besoin de certaines fonctionnalités, comme la possibilité de créer ou de supprimer un Modèle, décochez les cases à cocher correspondantes.

Un message vous précise alors que les fichiers ont bien été générés. De même que précédemment, si vous obtenez une erreur d’écriture, vérifiez les permissions sur les dossiers protected/controllers/ et protected/views pour vous assurer que le serveur Web dispose des droits d’écriture dans ces répertoires. Une fois terminé, répétez ces étapes pour le Modèle Department. La page qui s’affiche à la fin de la procédure contient un lien qui vous permettra de tester les fichiers générés[2].

Le générateur de CRUD de Yii

L’étape que nous venons de voir crée le fichier Contrôleur pour chaque fichier Modèle (DepartmentController.php et EmployeeController.php), ainsi qu’un répertoire Views pour chacun des deux, contenant huit fichiers par Modèle :

  • _form.php
  • _search.php
  • _view.php
  • admin.php
  • create.php
  • index.php
  • update.php
  • view.php

Le fichier formulaire (NDT : _form.php) et utilisé à la fois pour créer et modifier les enregistrements. Le fichier de recherche (NDT : _search.php) est un formulaire personnalisé pour la recherche. Le fichier _view.php est le template qui permet d’afficher un enregistrement. Le script admin.php crée une liste sous forme de tableau avec des liens permettant d’accéder aux fonctions de CRUD. Le fichier index.php permet l’affichage public de la liste des enregistrements. Le script view.php permet d’afficher les détails d’un enregistrement particulier. Enfin, les fichiers create.php et update.php sont des conteneurs (wrappers) du fichier formulaire, contenant les en-têtes adaptés.

Remarque : Voilà, c’est fini pour cet épisode ! Vous pouvez cliquer sur le lien « logout« , puis « webapp » pour revenir à la page d’accueil. Vous pouvez maintenant vérifier que tout ce que vous avez fait jusqu’à présent fonctionne en vous utilisant l’URL qui va bien. Selon que vous avez ou non activé le composant urlManager dans la configuration de votre application Yii, cette URL pourra être http://www.example.com/index.php/employee ou http://www.example.com/index.php?r=employee. Vous pouvez constater qu’il n’y a aucun employé à lister et que vous ne pouvez pas ajouter de nouveaux enregistrements sans être logué (par défaut, les identifiants sont admin/admin).

Ce cinquième épisode de la série « Learning the Yii Framework » de Larry Ullman est terminé. Je vous rappelle que vous pouvez consulter l’article original Creating Models, Views and Controllers in Yii est consultable sur le site de l’auteur.

Une fois encore, Larry et moi vous remercions de votre fidélité et de votre intérêt pour cette série. Le prochain article traitera de la façon dont vous pourrez modifier le code généré afin de faire fonctionner votre application comme vous l’entendez. Heureusement, grâce à l’outil Gii de Yii, 80% du travail est déjà fait à votre place !

Chapitre suivant : Modifier les Modèles dans Yii »

  1. [1] NDT : il se nomme urlManager et peut être activé dans le fichier de configuration main.php
  2. [2] NDT : il s’agit du lien « Try it now ».


7 Comments to “Créer les Modèles, les Vues et les Contrôleurs dans Yii”

  • franklinovic 7 avril 2011 à 16 h 51 min

    Une fois de plus encore merci. Yii est un framework vraiment très formidable et en lisant vos articles, il est très facile.

  • L.E.O 16 décembre 2011 à 18 h 01 min

    GÉNIAL !
    Félicitations pour cette initiative.
    Je me lance dans la programmation PHP avec framework et je m’aperçois que la montagne est haute. Heureusement, avec Yii et votre traduction le sommet parait moins loin.
    Vivement la suite pour y parvenir, pour le moment je ne peux que préparer le terrain au mieux avant de continuer.
    Merci pour votre travail. J’espère que la traduction des prochains articles est imminente !!

  • Joel 17 janvier 2012 à 21 h 18 min

    Merci pour ces traductions !

    Pour ceux qui comme moi pensaient qu’il n’y a pas la suite …. c’est ici que ça se passe : http://www.memorandom.fr/php/modifier-les-modeles-dans-yii/

  • Nico 24 janvier 2012 à 21 h 07 min

    Merci pour vos messages sympathiques.
    Comme l’a indiqué Joel dans son commentaire, j’avais effectivement oublié d’insérer le lien vers la partie suivante du tutoriel. C’est maintenant corrigé.

  • Yoo_yii 28 juin 2012 à 15 h 58 min

    Merci pour ces articles, ils sont tés claires et m’ont beaucoup aider à commencer avec Yii, mais si c’est possible de nous décrire comment créer des formulaires avec le lien « form generator » de l’interface gii.

  • ABDELAZIZ AKHARRAZ 5 mars 2014 à 10 h 00 min

    Merci beaucoup c’est vraiment intéressant !!

  • Storm Catcher 30 mai 2014 à 1 h 58 min

    Salut à tous, je suis un debutant sur yii framework, je cherche un tuto qui pourrait m’aider dans la conception de site web avec yii framework.

Poster un commentaire

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes