Jaaf 28 7 b synchronize fr/start-workflow.md with EN version (#16574) [skip ci]

This commit is contained in:
jaaf
2018-07-29 13:47:45 +02:00
committed by Alexander Makarov
parent 101b26c0f4
commit 708b18fbcf
4 changed files with 94 additions and 115 deletions

View File

@ -1,4 +1,4 @@
Travailler avec les bases de données
Travailler avec des bases de données
======================
Cette section décrit comment créer une nouvelle page qui affiche des données pays récupérées dans une table de base
@ -10,22 +10,21 @@ Au long de ce tutoriel, vous apprendrez comment :
* Configurer une connexion à une base de données
* Définir une classe Active Record
* Requêter des données en utilisant la classe Active Record
* Demander des données en utilisant la classe Active Record (enregistrement actif)
* Afficher des données dans une vue paginée
Notez que pour finir cette section, vous aurez besoin d'avoir une connaissance basique des bases de données.
En particulier, vous devez savoir créer une base de données, et exécuter des déclarations SQL en utilisant un client de
Notez que, pour finir cette section, vous aurez besoin d'avoir une connaissance basique des bases de données.
En particulier, vous devez savoir créer une base de données et exécuter des déclarations SQL en utilisant un client de
gestion de bases de données.
Préparer la Base de Données <span id="preparing-database"></span>
--------------------
Pour commencer, créez une base de données appelée `yii2basic`, depuis laquelle vous irez chercher les données dans
votre application.
Vous pouvez créer une base de données SQLite, MySQL, PostgreSQL, MSSQL ou Oracle, car Yii gère nativement de nombreuses
applications de base de données. Par simplicité, nous supposerons que vous utilisez MySQL dans les descriptions qui
suivent.
Pour commencer, créez une base de données appelée `yii2basic`, depuis laquelle vous irez chercher les données dans votre application.
Vous pouvez créer une base de données SQLite, MySQL, PostgreSQL, MSSQL ou Oracle, car Yii gère nativement de nombreuses applications de base de données. Pour simplifier, nous supposerons que vous utilisez MySQL dans les descriptions qui suivent.
>Note : bien que MariaDB a été un remplacement direct de MySQL, cela n'est plus complètement vrai. Dans le cas où vous auriez besoin de fonctionnalités avancées telles que la prise en charge de `JSON`, jetez un coup d'œil à la liste des extensions de MariaDB ci-dessous.
Créez maintenant une table nommée `country` dans la base de données et insérez-y quelques données exemples. Vous pouvez exécuter l'instruction SQL suivante pour le faire :
@ -48,15 +47,14 @@ INSERT INTO `country` VALUES ('RU','Russia',146519759);
INSERT INTO `country` VALUES ('US','United States',322976000);
```
Vous avez désormais une base de données appelée `yii2basic` conmprenant une table `country` comportant trois colonnes et contenant dix lignes de données.
Vous avez désormais une base de données appelée `yii2basic` comprenant une table `country` comportant trois colonnes et contenant dix lignes de données.
Configurer une Connexion à la BDD <span id="configuring-db-connection"></span>
---------------------------
Avant de continuer, vérifiez que vous avez installé à la fois l'extension PHP
[PDO](http://www.php.net/manual/fr/book.pdo.php) et le pilote PDO pour la base de données que vous utilisez (c'est
à dire `pdo_mysql` pour MySQL). C'est une exigence de base si votre application utilise une base de données
relationnelle.
à dire `pdo_mysql` pour MySQL). C'est une exigence de base si votre application utilise une base de données relationnelle.
Une fois ces éléments installés, ouvrez le fichier `config/db.php` et modifiez les paramètres pour qu'ils correspondent à votre base de données. Par défaut, le fichier contient ce qui suit :
@ -72,18 +70,20 @@ return [
];
```
Le fichier `config/db.php` est un exemple type d'outil de [configuration](concept-configurations.md) basé sur un
fichier. Ce fichier de configuration en particulier spécifie les paramètres nécessaires à la création et
l'initialisation d'une instance de [[yii\db\Connection]] grâce à laquelle vous pouvez effectuer des requêtes SQL
dans la base de données sous-jacente.
Le fichier `config/db.php` est un exemple type d'outil de [configuration](concept-configurations.md) basé sur un fichier. Ce fichier de configuration en particulier spécifie les paramètres nécessaires à la création et l'initialisation d'une instance de [[yii\db\Connection]] grâce à laquelle vous pouvez effectuer des requêtes SQL dans la base de données sous-jacente.
On peut accéder à connexion à la BDD configurée ci-dessus depuis le code de l'application vial'expression
`Yii::$app->db`.
On peut accéder à connexion à la BDD configurée ci-dessus depuis le code de l'application via l'expression `Yii::$app->db`.
> Info: le fichier `config/db.php` sera inclus par la configuration principale de l'application `config/web.php`,
qui spécifie comment l'instante d'[application](structure-applications.md) doit être initialisée.
qui spécifie comment l'instance d'[application](structure-applications.md) doit être initialisée.
Pour plus d'informations, reportez-vous à la section [Configurations](concept-configurations.md).
Si vous avez besoin de fonctionnalités de base de données dont la prise en charge n'est pas comprise dans Yii, examinez les extensions suivantes:
- [Informix](https://github.com/edgardmessias/yii2-informix)
- [IBM DB2](https://github.com/edgardmessias/yii2-ibm-db2)
- [Firebird](https://github.com/edgardmessias/yii2-firebird)
- [MariaDB](https://github.com/sam-it/yii2-mariadb)
Créer un Active Record <span id="creating-active-record"></span>
-------------------------
@ -102,8 +102,7 @@ class Country extends ActiveRecord
}
```
La classe `Country` étend [[yii\db\ActiveRecord]]. Vous n'avez pas besoin d'y écrire le moindre code ! Simplement, avec
le code ci-dessus, Yii devine le nom de la table associée au nom de la classe.
La classe `Country` étend [[yii\db\ActiveRecord]]. Vous n'avez pas besoin d'y écrire le moindre code ! Simplement, avec le code ci-dessus, Yii devine le nom de la table associée au nom de la classe.
> Info: si aucune correspondance directe ne peut être faite à partir du nom de la classe, vous pouvez outrepasser la méthode [[yii\db\ActiveRecord::tableName()]] pour spécifier explicitement un nom de table.
@ -126,10 +125,8 @@ $country->name = 'U.S.A.';
$country->save();
```
> Info: Active Record est un moyen puissant pour accéder et manipuler des données d'une base de manière orientée objet.
Vous pouvez trouver plus d'informations dans la section [Active Record](db-active-record.md). Sinon, vous pouvez
également interagir avec une base de données en utilisant une méthode de plus bas niveau d'accès aux données appelée
[Data Access Objects](db-dao.md).
> Info: Active Record (enregistrement actif) est un moyen puissant pour accéder et manipuler des données d'une base de manière orientée objet.
Vous pouvez trouver plus d'informations dans la section [Active Record](db-active-record.md). Sinon, vous pouvez également interagir avec une base de données en utilisant une méthode de plus bas niveau d'accès aux données appelée [Database Access Objects](db-dao.md).
Créer une Action <span id="creating-action"></span>
@ -204,7 +201,7 @@ use yii\widgets\LinkPager;
<ul>
<?php foreach ($countries as $country): ?>
<li>
<?= Html::encode("{$country->name} ({$country->code})") ?>:
<?= Html::encode("{$country->code} ({$country->name})") ?>:
<?= $country->population ?>
</li>
<?php endforeach; ?>
@ -243,13 +240,13 @@ En coulisse, [[yii\data\Pagination|Pagination]] fournit toutes les fonctionnalit
* Au départ, [[yii\data\Pagination|Pagination]] représente la première page, qui reflète la requête SELECT de country
avec la clause `LIMIT 5 OFFSET 0`. Il en résulte que les cinq premiers pays seront trouvés et affichés.
* L'objet graphique [[yii\widgets\LinkPager|LinkPager]] effectue le rendu des boutons de pages en utilisant les URLs créées par
[[yii\data\Pagination::createUrl()|Pagination]]. Les URLs contiendront le paramètre de requête `page`, qui représente
* L'objet graphique [[yii\widgets\LinkPager|LinkPager]] effectue le rendu des boutons de pages en utilisant les URL créées par
[[yii\data\Pagination::createUrl()|Pagination]]. Les URL contiendront le paramètre de requête `page`, qui représente
les différents numéros de pages.
* Si vous cliquez sur le bouton de page "2", une nouvelle requête pour la route `country/index` sera déclenchée et
traitée.
[[yii\data\Pagination|Pagination]] lit le paramètre de requête `page` dans l'URL et met le numéro de page à 2.
La nouvelle requête de pays aura donc la clause `LIMIT 5 OFFSET 5` et retournera le cinq pays suivants pour être
La nouvelle requête de pays aura donc la clause `LIMIT 5 OFFSET 5` et retournera les cinq pays suivants pour être
affichés.
@ -260,7 +257,7 @@ Dans cette section, vous avez appris comment travailler avec une base de donnée
chercher et afficher des données dans des pages avec l'aide de [[yii\data\Pagination]] et de [[yii\widgets\LinkPager]].
Dans la prochaine section, vous apprendrez comment utiliser le puissant outil de génération de code, appelé
[Gii](tool-gii.md), pour vous aider à implémenter rapidement des fonctionnalités communément requises, telles que les
[Gii](https://www.yiiframework.com/extension/yiisoft/yii2-gii/doc/guide), pour vous aider à rapidement mettre en œuvre des fonctionnalités communément requises, telles que les
opérations Créer, Lire, Mettre à Jour et Supprimer (CRUD : Create-Read-Update-Delete) pour travailler avec les données
dans une table de base de données. En fait, le code que vous venez d'écrire peut être généré automatiquement dans Yii
en utilisant l'outil Gii.

View File

@ -1,25 +1,21 @@
Générer du code avec Gii
========================
Cette section décrit comment utiliser [Gii](tool-gii.md) pour générer du code qui implémente des fonctionnalités
courantes de sites Web automatiquement. Utiliser Gii pour auto-générer du code consiste simplement à saisir les
bonnes informations en suivant les instructions affichées sur les pages Web Gii.
Cette section décrit comment utiliser [Gii](https://www.yiiframework.com/extension/yiisoft/yii2-gii/doc/guide) pour générer du code qui met automatiquement en œuvre des fonctionnalités courantes de sites Web. Utiliser Gii pour auto-générer du code consiste simplement à saisir les bonnes informations en suivant les instructions affichées sur les pages Web de Gii.
Au long de ce tutoriel, vous apprendrez comment :
* Activer Gii dans votre application
* Utiliser Gii pour générer des classes Active Record
* Utiliser Gii pour générer du code implémentant les opérations CRUD pour une table de BDD
* Utiliser Gii pour générer des classes Active Record (enregistrement actif)
* Utiliser Gii pour générer du code mettant en œuvre les opérations CRUD pour une table de BDD
* Personnaliser le code généré par Gii
Démarrer Gii <span id="starting-gii"></span>
------------
[Gii](tool-gii.md) est fourni dans Yii en tant que [module](structure-modules.md). Vous pouvez activer Gii en le
configurant dans la propriété [[yii\base\Application::modules|modules]] de lapplication. En fonction de la manière
dont vous avez créé votre application, vous trouverez peut être que le code suivant est déjà fourni dans le fichier de
configuration `config/web.php`:
[Gii](https://www.yiiframework.com/extension/yiisoft/yii2-gii/doc/guide) est fourni dans Yii en tant que [module](structure-modules.md). Vous pouvez activer Gii en le
configurant dans la propriété [[yii\base\Application::modules|modules]] de lapplication. En fonction de la manière dont vous avez créé votre application, il se peut que le code suivant soit déjà fourni dans le fichier de configuration `config/web.php`:
```php
$config = [ ... ];
@ -32,24 +28,21 @@ if (YII_ENV_DEV) {
}
```
La configuration ci-dessus établit que dans un [environnement de développement](concept-configurations.md#environment-constants),
lapplication doit inclure un module appelé `gii`, qui est de classe [[yii\gii\Module]].
La configuration ci-dessus établit que dans un [environnement de développement](concept-configurations.md#environment-constants), lapplication doit inclure un module appelé `gii`, qui est de classe [[yii\gii\Module]].
Si vous vérifiez le [script de démarrage](structure-entry-scripts.md) `web/index.php` de votre application, vous
les lignes suivantes, qui en gros, font que `YII_ENV_DEV` est vrai.
Si vous vérifiez le [script de démarrage](structure-entry-scripts.md) `web/index.php` de votre application, vous y trouverez les lignes suivantes, qui en gros, font que `YII_ENV_DEV` est défini à `true` (vrai).
```php
defined('YII_ENV') or define('YII_ENV', 'dev');
```
Grâce à cette ligne, votre application est en mode développement, et aura déjà active Gii, suivant la configuration
ci-dessus. Vous pouvez maintenant accéder à Gii via lURL suivante :
Grâce à cette ligne, votre application est en mode développement, et active Gii, suivant la configuration vue ci-dessus. Vous pouvez maintenant accéder à Gii via lURL suivante :
```
http://hostname/index.php?r=gii
```
> Note : Si vous accède à Gii depuis une machine autre que localhost, laccès sera refuse par défaut pour des raisons
> Note : si vous accédez à Gii depuis une machine autre que localhost, laccès sera refusé par défaut pour des raisons
> de sécurité. Vous pouvez configurer Gii pour ajouter les adresses IP autorisées comme suit,
>
```php
@ -65,35 +58,29 @@ http://hostname/index.php?r=gii
Générer une Classe Active Record <span id="generating-ar"></span>
---------------------------------
Pour utiliser Gii pour générer une classe Active Record, sélectionnez le "Model Generator" (en cliquant sur le lien
dans la page index de Gii). Puis complétez le formulaire comme suit :
Pour générer une classe Active Record avec Gii, sélectionnez le "Model Generator" (générateur de modèle), en cliquant sur le lien dans la page d'accueil de Gii, puis complétez le formulaire comme suit :
* Table Name: `country`
* Model Class: `Country`
![Générateur de Modèles](images/start-gii-model.png)
Ensuite, cliquez sur le bouton "Preview". Vous verrez que `models/Country.php` est listé comme fichier de classe à être créé. Vous pouvez cliquer sur le nom du fichier de classe pour pré visualiser son contenu.
Ensuite, cliquez sur le bouton "Preview" (prévisualiser). Vous verrez que `models/Country.php` est listé comme fichier de classe à créer. Vous pouvez cliquer sur le nom du fichier de classe pour prévisualiser son contenu.
Quand vous utilisez Gii, si vous aviez déjà créé le même fichier et que vous lécraseriez, cliquez sur le bouton `diff`
à côté du nom de fichier pour voir les différences entre le code à être généré et la version existant.
Si vous avez déjà créé le même fichier, il sera écrasé. Cliquez sur le bouton `diff`
à côté du nom de fichier pour voir les différences entre le fichier à générer et la version existante.
![Pré Visualisation du Générateur de Modèle](images/start-gii-model-preview.png)
![Prévisualisation du générateur de modèle](images/start-gii-model-preview.png)
Quand vous écrasez un fichier existant, cochez la case située à côté de "overwrite" et ensuite, cliquez sur le bouton
"Generate". Si vous créez un nouveau fichier, il suffit de cliquer sur "Generate".
Pour écraser un fichier existant, cochez la case située à côté de "overwrite" (écraser), puis cliquez sur le bouton "Generate" (générer). Pour créer un nouveau fichier, il suffit de cliquer sur "Generate".
Ensuite, vous verrez une page de confirmation indiquant que le code a été généré avec succès. Si vous aviez un fichier
existant, vous verrez également un message indiquant quil a été écrasé par le code nouvellement généré.
En fin d'opération, vous verrez une page de confirmation indiquant que le code a été généré avec succès. Si vous aviez un fichier existant, vous verrez également un message indiquant quil a été écrasé par le code nouvellement généré.
Générer du Code CRUD <span id="generating-crud"></span>
--------------------
CRUD signifie Create, Read, Update, and Delete (Créer, Lire, Mettre à Jour et Supprimer), représentant le quatre tâches
communes entreprises avec des données sur la plupart des sites Web. Pour créer les fonctionnalités CRUD en utilisant
Gii, sélectionnez le "CRUD Generator" (en cliquant sur le lien dans la page index de Gii). Pour lexemple de "country",
remplissez le formulaire résultant comme suit :
CRUD signifie Create, Read, Update, and Delete (Créer, Lire, Mettre à Jour et Supprimer), soit les quatre tâches communes concernant des données sur la plupart des sites Web. Pour créer les fonctionnalités CRUD en utilisant Gii, sélectionnez le "CRUD Generator" en cliquant sur le lien dans la page d'accueil de Gii. Pour lexemple de "country", remplissez le formulaire résultant comme suit :
* Model Class: `app\models\Country`
* Search Model Class: `app\models\CountrySearch`
@ -101,13 +88,13 @@ remplissez le formulaire résultant comme suit :
![CRUD Generator](images/start-gii-crud.png)
Ensuite, cliquez sur le bouton "Preview". Vous verrez une liste de fichiers à générer, comme ci-dessous.
Ensuite, cliquez sur le bouton "Preview" (prévisualiser). Vous verrez une liste de fichiers à générer, comme ci-dessous.
![CRUD Generator Preview](images/start-gii-crud-preview.png)
Si vous aviez précédemment créé les fichiers `controllers/CountryController.php` et
`views/country/index.php` (dans la section bases de données du guide), cochez la case "overwrite" pour les remplacer.
(Les versions précédentes navaient pas de fonctionnalités CRUD).
`views/country/index.php` (dans la section bases de données du guide), cochez la case "overwrite" (écraser) pour les remplacer.
(Les versions précédentes ne prenaient pas totalement en charge les fonctionnalités CRUD).
Essayer <span id="trying-it-out"></span>
@ -119,34 +106,27 @@ Pour voir comment ça fonctionne, utilisez votre navigateur pour accéder à l
http://hostname/index.php?r=country/index
```
Vous verrez une grille de données montrant les pays de la table de la base de données. Vous pouvez trier la table, ou
lui appliquer des filtres en entrant des conditions de filtrage dans les entêtes de colonnes.
Vous verrez une grille de données montrant les pays de la table de la base de données. Vous pouvez trier la table, ou lui appliquer des filtres en entrant des conditions de filtrage dans les entêtes de colonnes.
Pour chaque pays affiché dans la grille, vous pouvez choisir de visualiser les détails, le mettre à jour ou le
supprimer.
Vous pouvez aussi cliquer sur le bouton "Create Country" en haut de la grille pour que Yii vous fournisse un formulaire
permettant de créer un nouveau pays.
Pour chaque pays affiché dans la grille, vous pouvez choisir de visualiser les détails, le mettre à jour ou le supprimer.
Vous pouvez aussi cliquer sur le bouton "Create Country" (créer un pays) en haut de la grille pour que Yii vous présente un formulaire permettant de créer un nouveau pays.
![Grille de Données Pays](images/start-gii-country-grid.png)
![Mettre à Jour un Pays](images/start-gii-country-update.png)
Ce qui suit est la liste des fichiers générés par Gii, au cas où vous souhaiteriez investiguer la manière dont ces
fonctionnalités sont implémentées, ou les personnaliser :
Ce qui suit est la liste des fichiers générés par Gii, au cas où vous souhaiteriez investiguer la manière dont ces fonctionnalités sont mises en œuvre, ou les personnaliser :
* Contrôleur: `controllers/CountryController.php`
* Modèles: `models/Country.php` et `models/CountrySearch.php`
* Vues: `views/country/*.php`
> Info: Gii est conçu pour être un outil de génération de code hautement personnalisable et extensible. Lutiliser avec
sagesse peut grandement accélérer le développement de vos applications. Pour plus de détails, merci de vous référer
à la section [Gii](tool-gii.md).
> Info: Gii est conçu pour être un outil de génération de code hautement personnalisable et extensible. Lutiliser avec sagesse peut grandement accélérer le développement de vos applications. Pour plus de détails, merci de vous référer à la section [Gii](tool-gii.md).
Résumé <span id="summary"></span>
-------
Dans cette section, vous avez appris à utiliser Gii pour générer le code qui implémente une fonctionnalité CRUD
complète pour les contenus stockés dans une table de base de données.
Dans cette section, vous avez appris à utiliser Gii pour générer le code qui met en œuvre une fonctionnalité CRUD complète pour des contenus stockés dans une table de base de données.

View File

@ -1,39 +1,38 @@
En savoir plus
=============
Si vous avez entièrement lu la section "Mise en Route", vous avec maintenant créé une application Yii complète. Ce
faisant, vous avez appris comment implémenter des fonctionnalités couramment utilisées, telles que recueillir des
données d'un utilisateur via un formulaire HTML, chercher des données dans une base de données, et afficher des données
de manière paginée. Vous avez également appris à utiliser [Gii](tool-gii.md) pour générer du code automatiquement.
Si vous avez entièrement lu la section "Mise en Route", vous avez maintenant créé une application Yii complète. Ce faisant, vous avez appris comment mettre en œuvre des fonctionnalités couramment utilisées, telles que recueillir des données d'un utilisateur via un formulaire HTML, chercher des données dans une base de données, et afficher des données
de manière paginée. Vous avez également appris à utiliser [Gii](https://www.yiiframework.com/extension/yiisoft/yii2-gii/doc/guide) pour générer du code automatiquement.
Utiliser Gii pour générer du code rend le gros de votre processus de développement Web aussi simple que de remplir de
simples formulaires.
Cette section va résumer les ressources Yii disponibles pour vous aider à être plus productif dans l'utilisation du
framework.
Cette section va résumer les ressources Yii disponibles pour vous aider à être plus productif dans l'utilisation du framework.
* Documentation
- Le Guide définitif :
- [Le Guide complet](http://www.yiiframework.com/doc-2.0/guide-README.html) :
Comme son nom l'indique, le guide définit précisément comment Yii fonctionne et fournit des instructions générales
sur l'utilisation de Yii. C'est le tutoriel pour Yii le plus important, un que vous devriez lire avant d'écrire le
moindre code Yii.
- La Référence de Classes :
Elle spécifie l'usage de toutes les classes fournies par Yii. Elle doit être principalement utilisée lorsque
vous utilisez du code et souhaitez comprendre l'usage d'une classe, méthode ou propriété particulière.
L'utilisation de la référence de classe est plus appropriée quand vous avez une compréhension contextuelle du
framework entier.
- Les Articles Wiki:
Les articles wiki sont écrits par des utilisateurs de Yii en fonction de leurs propres expériences. Ils sont en
- [Le référentiel des Classes](http://www.yiiframework.com/doc-2.0/index.html) :
Il spécifie le mode d'utilisation de toutes les classes fournies par Yii. Il doit être principalement utilisé lorsque
vous écrivez du code et souhaitez comprendre le mode d'utilisation d'une classe, méthode ou propriété particulière.
L'utilisation du référentiel des classes est plus appropriée quand vous avez une compréhension contextuelle du framework entier.
- [Les Articles du Wiki](http://www.yiiframework.com/wiki/?tag=yii2):
Les articles wiki sont écrits par des utilisateurs de Yii sur la base de leurs propres expériences. Ils sont en
général écrits comme des recettes de cuisine, et montrent comment résoudre des problèmes pratiques en utilisant
Yii. Bien que la qualité de ces articles peut être inférieure à celle du Guide Définitif, ils sont utiles du fait
Yii. Bien que la qualité de ces articles puisse être moindre que celle du Guide complet, ils sont utiles du fait
qu'ils couvrent des sujets plus vastes et peuvent fournir des solutions clef-en-main.
- Livres
- [Livres](http://www.yiiframework.com/doc/)
* [Extensions](http://www.yiiframework.com/extensions/):
Yii est fort d'une librairie de milliers d'extensions créées par les utilisateurs, qui peuvent être facilement
ajoutées à votre application, rendant son développement encore plus facile et plus rapide.
* Communauté
- Forum : <http://www.yiiframework.com/forum/>
- Chat IRC : Les canal #yii sur le réseau freenode (<irc://irc.freenode.net/yii>)
- GitHub : <https://github.com/yiisoft/yii2>
- Facebook : <https://www.facebook.com/groups/yiitalk/>
- Twitter : <https://twitter.com/yiiframework>
- LinkedIn : <https://www.linkedin.com/groups/yii-framework-1483367>
- Slack chanel: <https://yii.slack.com>
- Gitter chat: <https://gitter.im/yiisoft/yii2>
- GitHub: <https://github.com/yiisoft/yii2>
- Facebook: <https://www.facebook.com/groups/yiitalk/>
- Twitter: <https://twitter.com/yiiframework>
- LinkedIn: <https://www.linkedin.com/groups/yii-framework-1483367>
- Stackoverflow: <http://stackoverflow.com/questions/tagged/yii2>

View File

@ -3,13 +3,14 @@ Fonctionnement des applications
Après avoir installé Yii, vous obtenez une application Yii fonctionnelle accessible via l'URL `http://hostname/basic/web/index.php` ou `http://hostname/index.php`, en fonction
de votre configuration. Cette section vous initiera aux fonctionnalités intégrées à l'application,
à la manière dont le code est organisé, et à la gestion des requêtes par l'application.
à la manière dont le code est organisé et à la gestion des requêtes par l'application.
> Info: Par simplicité, au long de ce tutoriel de démarrage, nous supposerons que `basic/web` est la racine de votre
serveur Web, et que vous avez configuré l'URL pour accéder à votre application comme suit ou similaire :
> Info: pour simplifier, au long de ce tutoriel de démarrage, nous supposerons que `basic/web` est la racine de votre
serveur Web, et que vous avez configuré l'URL pour accéder à votre application comme suit ou de façon similaire :
`http://hostname/index.php`.
Pour vos besoins, merci d'ajuster les URLs dans notre description comme il convient.
Notez que contrairement au framework lui-même, après avoir installé un modèle de projet, vous êtes entièrement libre d'en disposer. Vous êtes libre d'ajouter ou de supprimer du code selon vos besoins.
Fonctionnalité <span id="Functionality"></span>
--------------
@ -17,19 +18,21 @@ Fonctionnalité <span id="Functionality"></span>
L'application basique installée contient quatre pages :
* La page d'accueil, affichée quand vous accédez à l'URL `http://hostname/index.php`,
* la page "About" (A Propos),
* la page "Contact", qui présente un formulaire de contact permettant aux utilisateurs finaux de vous contacter par email,
* la page "About" (À Propos),
* la page "Contact", qui présente un formulaire de contact permettant aux utilisateurs finaux de vous contacter par courriel,
* et la page "Login" (Connexion), qui présente un formulaire de connexion qui peut être utilisé pour authentifier des utilisateurs finaux. Essayez de vous connecter
avec "admin/admin", et vous verrez l'élément "Login" du menu principal être remplacé par "Logout" (Déconnexion).
avec "admin/admin", et vous verrez l'élément "Login" du menu principal être remplacé par "Logout" (Déconnexion).
Ces pages ont en commun une entête et un pied de page. L'entête contient une barre de menu principal qui permet la navigation
entre les différentes pages.
Vous devriez également voir une barre d'outils en bas de votre fenêtre de navigation.
C'est un [outil de débogage](tool-debugger.md) utile fourni par Yii pour enregistrer et afficher de nombreuses informations de débogage, telles que des messages de logs, statuts de réponses, les requêtes lancées vers la base de données, et ainsi de suite.
C'est un [outil de débogage](https://github.com/yiisoft/yii2-debug/blob/master/docs/guide/README.md) utile fourni par Yii pour enregistrer et afficher de nombreuses informations de débogage, telles que des messages de journaux, les statuts de réponses, les requêtes lancées vers la base de données, etc.
En plus de l'application Web, il existe,dans le dossier de base de l'application, un script en console appelé `yii`. Ce script peut être utilisé pour exécuter des tâches de fond et de maintenance pour l'application; ces tâches sont décrites à la section [Applications en console](tutorial-console.md).
Structure de l'Application <span id="application-structure"></span>
Structure de l'application <span id="application-structure"></span>
---------------------
Les répertoires et fichiers les plus importants de votre application sont (en supposant que le répertoire racine de l'application est `basic`) :
@ -52,20 +55,20 @@ basic/ chemin de base de l'application
yii le script d'exécution de Yii en commande console
```
Dans l'ensemble, les fichiers de l'application peuvent être séparés en deux types : ceux situés dans `basic/web` et ceux situés dans d'autres répertoires. Les premiers peuvent être atteints directement en HTTP (c'est à dire dans un navigateur), tandis que les seconds doivent pas l'être.
Dans l'ensemble, les fichiers de l'application peuvent être séparés en deux types : ceux situés dans `basic/web` et ceux situés dans d'autres répertoires. Les premiers peuvent être atteints directement en HTTP (c'est à dire dans un navigateur), tandis que les seconds ne peuvent et ne doivent pas l'être.
Yii est implémenté selon le patron de conception [modèle-vue-contrôleur (MVC)](http://fr.wikipedia.org/wiki/Mod%C3%A8le-vue-contr%C3%B4leur),
Yii est mis en œuvre selon le modèle de conception [modèle-vue-contrôleur (MVC)](http://wikipedia.org/wiki/Model-view-controller),
ce qui se reflète dans l'organisation des répertoires ci-dessus. Le répertoire `models` contient toutes les [classes modèles](structure-models.md),
le répertoire `views` contient tous les [scripts de vue](structure-views.md), et le répertoire `controllers` contient toutes les [classes contrôleurs](structure-controllers.md).
le répertoire `views` contient tous les [scripts de vue](structure-views.md), et le répertoire `controllers` contient toutes les [classes contrôleurs](structure-controllers.md).
Le schéma suivant présente la structure statique d'une application.
![Structure Statique d'Application](images/application-structure.png)
Chaque application a un script de démarrage `web/index.php` qui est le seul script PHP de l'application accessible depuis le Web.
Le script de démarrage reçoit une requête et créé une instance d'[application](structure-applications.md) pour la traiter.
Chaque application dispose d'un script de démarrage `web/index.php` qui est le seul script PHP de l'application accessible depuis le Web.
Le script de démarrage reçoit une requête entrante et crée une instance d'[application](structure-applications.md) pour la traiter.
L'[application](structure-applications.md) résout la requête avec l'aide de ses [composants](concept-components.md),
et distribue la requête aux éléments MVC. Les [Widgets](structure-widgets.md) sont utilisés dans les [vues](structure-views.md)
et distribue la requête aux éléments MVC. Les [composants graphiques (widgets)](structure-widgets.md) sont utilisés dans les [vues](structure-views.md)
pour aider à créer des éléments d'interface complexes et dynamiques.
@ -74,16 +77,16 @@ Cycle de vie d'une requête <span id="request-lifecycle"></span>
Le diagramme suivant présente la manière dont une application traite une requête.
![Cycle de Vie d'une Requête](images/request-lifecycle.png)
![Cycle de vie d'une requête](images/request-lifecycle.png)
1. Un utilisateur fait une requête au [script de démarrage](structure-entry-scripts.md) `web/index.php`.
2. Le script de démarrage charge la [configuration](concept-configurations.md) de l'application et créé une instance d'[application](structure-applications.md) pour traiter la requête.
2. Le script de démarrage charge la [configuration](concept-configurations.md) de l'application et crée une instance d'[application](structure-applications.md) pour traiter la requête.
3. L'application résout la [route](runtime-routing.md) requise avec l'aide du composant d'application [requête](runtime-requests.md).
4. L'application créé une instance de [contrôleur](structure-controllers.md) pour traiter la requête.
5. Le contrôleur créé une instance d'[action](structure-controllers.md) et effectue les filtres pour l'action.
5. Le contrôleur crée une instance d'[action](structure-controllers.md) et applique les filtres pour l'action.
6. Si un filtre échoue, l'action est annulée.
7. Si tous les filtres sont validés, l'action est exécutée.
8. L'action charge un modèle de données, potentiellement depuis une base de données.
9. L'action génère une vue, lui fournissant le modèle de données.
10. Le résultat généré est renvoyé au composant d'application [réponse](runtime-responses.md).
11. Le composant réponse envoie le résultat généré au navigateur de l'utilisateur.
10. Le résultat généré est renvoyé au composant d'application [response](runtime-responses.md).
11. Le composant « response » (réponse) envoie le résultat généré au navigateur de l'utilisateur.