Créer sa première applicatin Yii

Pour se faire la main sur Yii, nous allons décrire dans cette section comment créér notre première application avec le framework Yii. Nous allons utiliser le puissant outil yiic qui peut automatiser la création du code pour certaines taches. Par convention, nous supposons que YiiRoot est le répertoire où Yii est installé, and WebRoot est la racine Web du serveur.

Lancer yiic sur la ligne de commande comme suit :



Note: Sur Mac OS, Linux ou Unix, il sera peut être nécessaire de modifier les permissions sur le fichier yiic pour le rendre exécutable. Il est aussi possible de lancer l'outil comme suit :


Cette commande va créer un squelette d'application Yii sous le répertoire WebRoot/testdvive. L'application a une structure de répertoire qui est nécessaire à la plupart des applications Yii

Sans écrire une seule ligne de code, nous pouvons tester notre première application Uii, en accédant à l'url suivante dans le navigateur :



Comme nous pouvons le constater, l'application a trois pages: la page d'accueil, la page de contact et la page de login. La page d'accueil nous montre des informations sur l'application, ainsi que sur l'état de l'utilisateur connecté. La page de contact affiche un formulaire de contact que les utilisateurs peuvent remplir, et la page de login permet aux utilisateurs de d'authentifier avant d'accéder à un contenu privé. Les copies d'écran suivantes nous montrent plus de details.

Page d'accueil

Page d'accueil

Page Contact

Page Contact

Page de contact avec des erreurs de saisie

Page de contact avec des erreurs de saisie

Page de contact envoyée avec succès

Page de contact envoyée avec succès

Page de login

Page de login

Le schéma suivant montre la structure des répertoires de notre applications. Veuillez consulter la page Conventions pour de plus amples informations à propos de cette structure.



Connexions aux bases de données

La plupart des applications web sont gérées par une base de données. Notre application de test n'est pas une exception. Pour utiliser une base de donnée, nous devons auparavant signaler à l'application comment se connecter à celle-ci. Pour cela, il faut modifier le fichier de configuration de l'application WebRoot/testdrive/protected/config/main.php comme ceci :



Dans cet exemple, nous ajoutons une entrée nommée db aux composants, qui permet à l'application de se conencter à la base de donnée SQLlite WebRoot/testdrive/protected/data/source.db quand celà est nécessaire.

Note : Pour utiliser les fonctionnalités de base de données de Yii, il est nécessaire d'activer l'extension PDO dans PHP, ainsi que les différents drivers PDO spécifiques à chaque base de donnée. Pour notre application de test, nous avons besoin que les extensions php_pdo et php_pdo_sqlite soient activées.

Pour finir, nous devons préparer une base de donnée SQLite. En utilisant les outils d'administration SQLite, nous pouvons créer une base de donnée avec le modèle suivant :



Note: Si vous utilisez MySQL, vous devez remplacer AUTOINCREMENT par AUTO_INCREMENT dans le code SQL ci-dessus.

Par souci de simplification, nous créeons seulement une table User dans notre base. Le fichier de base de donnée SQLite est sauvé sous le nom

WebRoot/testdrive/protected/data/source.db. Notez que le nom de fichier ainsi que le répertoire qui le contient doivent être accessibles en écriture par l'utilisateur exécutant le serveur web.

Implémentations des opérations CRUD

Maintenant, la partie amusante. Nous aimerions implémenter les opérations CRUD (Create, Read, Update and Delete, soit Création, Lecture, Modification et Suppression) sur la table User que nous venons de créer. C'est une opération nécessaire la plupart du temps.

Plutot que d'écrire du code, nous allons encore nous servir du puissant outil yiic, afin de générer automatiquement le code. Ce processus est aussi connu sous le nom de scaffolding. Ouvrez une fenêtre de ligne de commande, et exécutez les commandes suivantes :



Ci-dessus, nous utilisons la commande yiic shell pour interagir avec notre application. Au prompt, nous exécutons 2 sous-commandes : model User, et crud User. La première genère une class "Model" pour la table User, et la seconde lit ce modèle pour générer le code qui implémente les traitements CRUD.

Note : Si vous rencontrez des erreurs comme "...could not find driver", alors que le script de test des pré-requis signale que PDO et les drivers associés sont bien activés, vous pouvez essayer de lancer l'outil yiic de la manière suivante :


  
  

path/to/php.ini représente le chemin d'accès au fichier php.ini

Jetons maintenant un oeil à notre application par cette URL :



Cela va afficher la liste des entrées dans la table User. Etant donné que notre table est vide, rien n'apparaîtra pour le moment.

Cliquez sur le lien New User sur la page. Si nous n'étions pas encore connecté, nous allons être redirigés vers la page de login. Après s'être connecté, un formulaire contenant tous les champs permettant la création d'un utilisateur sera affiché. Completez le formulaire, et cliquez sur le bouton Create. Si une erreur de saisie s'est glissée dans le formulaire, un message d'erreur sera affiché, nous empêchant alors de sauvegarer l'entrée. En revenant à la liste des utilisateurs, nous devrions alors voir le nouvel utilisateur que nous avons créé.

Répetez ces étapes pour ajouter plus d'utilisateur. Notez que la liste d'utilisateur sera automatiquement paginée s'il y a trop d'utilisateur à afficher sur une seule page.

Si nous nous connectons en tant qu'administrateur en utilisant admin/admin, nous pouvons visiter l'a page d'administration à l'URL suivante :



Cette page affiche une jolie table des utilisateurs. Il est possible de cliquer sur les entêtes de la table afin de la trier selon la colonne correspondante. Et, de la même manière que la liste précédente, cette table sera paginée si le nombre d'entrées est trop important.

Toutes ces fonctionnalités ont été réalisées sans écrire une seule ligne de code !

Page d'administration des utilisateurs

Page d'administration des utilisateurs

Page de création d'un nouvel utilisateur

Page de création d'un nouvel utilisateur
$Id: quickstart.first-app.txt 1264 $