La passion du libre

Le guide complet de Yii 2 (traduction du guide officiel)

Cliquez sur le bouton pour afficher les conseils de lecture.Cliquez à nouveau pour les masquer

Fenêtres surgissantes explicatives

Certains mots dans le texte, affichés en vert et en gras, sont précédés d'une étoile verte sur fond orange. Par exemple, ce mot : lien.

Si vous placez le pointeur de la souris sur un tel mot, une fenêtre surgissante – popup – s'ouvre alors que l'affichage du reste du documment s'atténue. Cette fenêtre contient une explication détaillée du mot en question

Une fois que vous avez pris connaissance de ce que vous affiche cette fenêtre surgissante, vous pouvez retourner à l'état normal en cliquant ailleurs dans le document.

Navigation

Pour naviguer, utilisez le menu vertical à gauche du texte. Les entrées de menu marquées d'une petite flèche vers le bas ouvrent un sous-menu lorsqu'on clique dessus.

Vous pouvez également choisir une lecture continue en cliquant sur un des liens proposés en bas de page.

Composants d'application

Les applications sont des (localisateurs de services (service locators). Elles hébergent un jeu composants appelés « composants d'application » qui procurent différents services pour la prise en charge des requêtes. Par exemple, le composant urlManager (gestionnaire d'url) est chargé de router les requêtes Web vers les contrôleurs appropriés ; le composant db (base de données) fournit les services relatifs à la base de données ; et ainsi de suite.

Chaque composant d'application possède un identifiant unique qui le distingue des autres composants d'application de la même application. Vous pouvez accéder à un composant d'application via l'expression :

\Yii::$app->componentID

Par exemple, vous pouvez utiliser \Yii::$app->db pour obtenir la [[yii\db\Connection|connexion à la base de données]], et \Yii::$app->cache pour accéder au [[yii\caching\Cache|cache primaire]] enregistré dans l'application.

Un composant d'application est créé la première fois qu'on veut y accéder en utilisant l'expression ci-dessus. Les accès ultérieurs retournent la même instance du composant.

Les composants d'application peuvent être n'importe quel objet. Vous pouvez les enregistrer en configurant la propriété [[yii\base\Application::components]] dans la configuration de l'application.

Par exemple,

[
    'components' => [
        // enregistre le composant  "cache" à partir du nom de classe
        'cache' => 'yii\caching\ApcCache',

        // enregistre le composant "db" à l'aide d'un tableau de configuration
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=demo',
            'username' => 'root',
            'password' => '',
        ],

        // enregistre le composant "search" en utilisant une fonction anonyme
        'search' => function () {
            return new app\components\SolrService;
        },
    ],
]

Info: bien que vous puissiez enregistrer autant de composants d'application que vous le désirez, vous devriez le faire avec discernement. Les composants d'application sont comme les variables globales, une utilisation trop importante de composants d'application est susceptible de rendre votre code plus difficile à tester et à maintenir. Dans beaucoup de cas, vous pouvez simplement créer un composant localement et l'utiliser lorsque vous en avez besoin.

Composants du processus d'amorçage

Comme il a été dit plus haut, un composant d'application n'est instancié que lorsqu'on y accède pour la première fois. S'il n'est pas du tout accédé dans le traitement de la requête, il n'est pas instancié. Parfois, vous désirez peut être instancier un composant d'application pour chacune des requêtes, même s'il n'est pas explicitement accédé. Pour cela, vous pouvez lister son identifiant (ID) dans la propriété [[yii\base\Application::bootstrap|bootstrap]] de l'application.

Par exemple, la configuration d'application suivante garantit que le composant log est toujours chargé.

[
    'bootstrap' => [
        'log',
    ],
    'components' => [
        'log' => [
            // configuration pour le composant "log"
        ],
    ],
]

Composants d'application du noyau

Yii définit un jeu de composants d'application dit core application components (composants d'application du noyau ou du cœur) avec des identifiants fixés et des configurations par défaut. Par exemple, le composant [[yii\web\Application::request|request (requête)]] est utilisé pour collecter les informations sur une requête utilisateur et la résoudre en une route; le composant [[yii\base\Application::db|db (base de données)]] représente une connexion à une base de données à l'aide de laquelle vous pouvez effectuer des requêtes de base de données. C'est à l'aide des ces composants d'application du noyau que les applications Yii sont en mesure de prendre en charge les requêtes des utilisateurs.

Vous trouverez ci-après la liste des composants d'application prédéfinis du noyau. Vous pouvez les configurer et les personnaliser comme tout composant d'application. Lorsque vous configurez une composant d'application du noyau, vous n'avez pas besoin de spécifier sa classe, celle par défaut est utilisée.

  • [[yii\web\AssetManager|assetManager (gestionnaire de ressources]]: gère les paquets de ressources et la publication des ressources. Reportez-vous à la section Gestion des ressources pour plus de détails.
  • [[yii\db\Connection|db (base de données)]]: représente une connexion à une base de données à l'aide de laquelle vous pouvez effectuer des requêtes de base de données. Notez que lorsque vous configurez ce composant, vous devez spécifier la classe de composant tout comme les autres propriétés de composant, telle que [[yii\db\Connection::dsn]]. Reportez-vous à la section Objets d'accès aux données pour plus de détails.
  • [[yii\base\Application::errorHandler|errorHandler (gestionnaire d'erreurs) ]]: gère les erreurs PHP et les exceptions. Reportez-vous à la section Gestion des erreurs pour plus de détails.
  • [[yii\i18n\Formatter|formatter ]]: formate les données lorsqu'elles sont présentées à l'utilisateur final. Par exemple, un nombre peut être affiché avec un séparateur de milliers, une date affichée dans un format long, etc. Reportez-vous à la section Formatage des données pour plus de détails.
  • [[yii\i18n\I18N|i18n]]: prend en charge la traduction et le formatage des messages. Reportez-vous à la section Internationalisation pour plus de détails.
  • [[yii\log\Dispatcher|log]]: gère les journaux cibles. Reportez-vous à la section Journaux pour plus de détails.
  • [[yii\swiftmailer\Mailer|mail]]: prend en charge la composition et l'envoi des courriels. Reportez-vous à la section Mailing pour plus de détails.
  • [[yii\base\Application::response|response]]: représente la réponse qui est adressée à l'utilisateur final. Reportez-vous à la section Réponses pour plus de détails.
  • [[yii\base\Application::request|request]]: représente la requête reçue de l'utilisateur final. Reportez-vous à la section Requests pour plus de détails.
  • [[yii\web\Session|session]]: représente les informations de session. Ce composant n'est disponible que dans les [[yii\web\Application|applications Web]]. Reportez-vous à la section Sessions et Cookies pour plus de détails.
  • [[yii\web\UrlManager|urlManager (gestionnaire d'url)]]: prend en charge l'analyse des URL et leur création. Reportez-vous à la section Analyse et création d'URL pour plus de détails.
  • [[yii\web\User|user]]: représente les informations d'authentification de l'utilisateur. Ce composant n'est disponible que dans les [[yii\web\Application|applications Web]]. Reportez-vous à la section Authentification pour plus de détails.
  • [[yii\web\View|view]]: prend en charge le rendu des vues. Reportez-vous à la section Vues pour plus de détails.