Maison  >  Article  >  développement back-end  >  Supplément 6 du didacticiel officiel Yii Framework - Connaissances de base : application, composants, configuration, cycle de vie

Supplément 6 du didacticiel officiel Yii Framework - Connaissances de base : application, composants, configuration, cycle de vie

黄舟
黄舟original
2017-02-11 09:32:251393parcourir



L'application fait référence au contexte d'exécution dans le traitement des requêtes. Sa tâche principale est d'analyser les demandes des utilisateurs et de les envoyer au responsable du traitement approprié pour un traitement ultérieur. Il sert également de centre de services, gérant les configurations au niveau des applications. Pour cette raison, les applications sont également appelées contrôleurs frontaux .

L'application est créée en tant qu'objet singleton par le script d'entrée. Cet objet singleton d'application est accessible de n'importe où via Yii::app().

1. Configuration de l'application

Par défaut, l'application est une instance de CWebApplication. Pour le personnaliser, nous devons généralement fournir un fichier de configuration (ou un tableau) pour initialiser ses valeurs de propriété lors de la création de l'instance d'application. Une autre façon de personnaliser votre application consiste à étendre CWebApplication.

La configuration est un tableau de paires clé-valeur. Chaque clé représente le nom d'une propriété dans l'instance d'application et chaque valeur est la valeur initiale de la propriété correspondante. Par exemple, la configuration suivante définit le nom de l'application et les propriétés defaultController.


array(
    'name'=>'Yii Framework',
    'defaultController'=>'site',
)

Nous enregistrons généralement ces configurations dans un script PHP séparé (par exemple protégé/config/main.php) . Dans le script, on renvoie ce tableau de configuration via :


return array(...);

Pour appliquer cette configuration, on ferait Le nom du fichier de configuration est passé en paramètre au constructeur de l'application ou à Yii::createWebApplication() comme suit. Cela se fait généralement dans un script d'entrée :


$app=Yii::createWebApplication($configFile);

Astuce : si la configuration de l'application est très complexe, on peut la diviser en plusieurs fichiers, chaque fichier renvoie une partie du tableau de configuration. Ensuite, dans le fichier de configuration principal, nous appelons include() de PHP pour inclure les fichiers de configuration restants et les fusionner dans un tableau de configuration complet.

2. Répertoire de base de l'application

Le répertoire de base de l'application fait référence au répertoire racine qui contient tous les scripts et données PHP sensibles à la sécurité. Par défaut, il s'agit d'un sous-répertoire nommé protected situé dans le répertoire contenant le script d'entrée. Il peut être personnalisé en définissant l'attribut basePath dans la configuration de l'application.

Le contenu du répertoire de base de l'application doit être protégé contre tout accès direct par les visiteurs du site Web. Pour le serveur HTTP Apache, cela se fait facilement en plaçant un fichier .htaccess dans le répertoire de base. Le contenu de .htaccess est le suivant :

deny from all

3. Composants de l'application

La fonctionnalité de l'application peut être facilement personnalisée ou améliorée grâce à sa structure de composants flexible. L'application gère une série de composants applicatifs, chaque composant implémente une fonction spécifique. Par exemple, l'application analyse les demandes de l'utilisateur à l'aide de CUrlManager et CHttpRequest.

En configurant l'attribut composants de l'application, nous pouvons personnaliser n'importe quelle classe de composant et ses valeurs d'attribut utilisées dans l'application. Par exemple, nous pouvons configurer le composant CMemCache de l'application pour qu'il puisse utiliser plusieurs serveurs Memcache pour la mise en cache :


array(
    ......
    'components'=>array(
        ......
        'cache'=>array(
            'class'=>'CMemCache',
            'servers'=>array(
                array('host'=>'server1', 'port'=>11211, 'weight'=>60),
                array('host'=>'server2', 'port'=>11211, 'weight'=>40),
            ),
        ),
    ),
)

Comme indiqué ci-dessus, nous avons ajouté l'élément de cache au tableau de composants. L'élément cache indique que la classe de ce composant est CMemCache et que son attribut serveurs doit être initialisé en conséquence.

Pour accéder à un composant d'application, utilisez Yii::app()->ComponentID , où ComponentID fait référence à l'ID du composant (tel que Yii::app()->cache).

Les composants d'une application peuvent être désactivés en définissant activé sur false dans sa configuration. Null sera renvoyé lorsque nous accéderons à un composant désactivé.

Astuce : Par défaut, les composants applicatifs sont créés à la demande. Cela signifie qu'un composant d'application ne peut pas être créé du tout s'il n'est pas accédé dans une requête utilisateur. Par conséquent, si une application est configurée avec de nombreux composants, ses performances globales ne peuvent pas se dégrader. Certains composants d'application (tels que CLogRouter) peuvent devoir être créés, indépendamment du fait qu'ils soient accessibles ou non. Pour cela, répertoriez son identifiant dans l'attribut preload de l'application.

4. Composants d'application de base

Yii prédéfinit une série de composants d'application de base pour fournir des fonctions utilisées dans les applications Web courantes. Par exemple, le composant de requête est utilisé pour analyser les demandes des utilisateurs et fournir des informations telles que l'URL, les cookies, etc. En configurant les propriétés de ces composants principaux, nous pouvons modifier le comportement par défaut de Yii dans presque tous les aspects.

Ci-dessous, nous répertorions les composants de base prédéfinis par CWebApplication.

  • assetManager : CAssetManager - gère la publication des fichiers de ressources privées.

  • authManager : CAuthManager - Gère le contrôle d'accès basé sur les rôles (RBAC).

  • cache : CCache - Fournit une fonctionnalité de mise en cache des données. Notez que vous devez spécifier la classe réelle (par exemple CMemCache, CDbCache). Sinon, NULL sera renvoyé lorsque vous accéderez à ce composant.

  • clientScript : CClientScript - Gère les scripts clients (javascripts et CSS)

  • coreMessages : CPhpMessageSource - Fournit la traduction des messages principaux utilisés par le framework Yii.

  • db : CDbConnection - Fournit une connexion à la base de données. Notez que pour utiliser ce composant, vous devez configurer sa propriété connectionString.

  • errorHandler : CErrorHandler - Gère les erreurs et exceptions PHP non détectées.

  • format : CFormatter - affichage numérique formaté. Cette fonctionnalité est disponible à partir de la version 1.1.0.

  • messages : CPhpMessageSource - Fournit des traductions de messages utilisées dans les applications Yii.

  • requête : CHttpRequest - Fournit des informations sur la demande de l'utilisateur.

  • securityManager : CSecurityManager - Fournit des services liés à la sécurité tels que le hachage et le cryptage.

  • session : CHttpSession - Fournit des fonctions liées à la session.

  • statePersister : CStatePersister - Fournit des méthodes de persistance d'état globales.

  • urlManager : CUrlManager - Fournit des fonctions liées à l'analyse et à la création d'URL.

  • user : CWebUser - Fournit des informations d'identification de l'utilisateur actuel.

  • themeManager : CThemeManager - Gérer les thèmes.

5. Cycle de vie de l'application

Lors du traitement des demandes des utilisateurs, l'application passera par le cycle de vie suivant :

  1. Réussite CApplication::preinit() pré-initialise l'application ;

  2. Définissez le chargeur automatique et la gestion des erreurs de la classe

  3. Enregistrez les composants de la classe principale ; ;

  4. Charger la configuration de l'application;

  5. Initialiser l'application via CApplication::init():

  • Enregistrer le comportement de l'application ;

  • Charger les composants d'application statiques

  • Déclencher l'événement onBeginRequest

  • Gérer la demande de l'utilisateur :

    • Analyser la demande de l'utilisateur ;

    • Créer un contrôleur

    • Exécutez le contrôleur
    déclenchez l'événement onEndRequest.
  • Supplément 6 du didacticiel officiel Yii Framework - Connaissances de base : application, composants, configuration, cycle de vieCe qui précède est le supplément 6 du didacticiel officiel du Yii Framework - connaissances de base : application, composants, configuration, contenu du cycle de vie et autres contenus connexes. Veuillez faites attention au site Web PHP chinois (www.php.cn) !

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn