Maison >développement back-end >tutoriel php >Framework de développement PHP Tutoriel Yii Framework (2) Bases de l'application Web Yii

Framework de développement PHP Tutoriel Yii Framework (2) Bases de l'application Web Yii

黄舟
黄舟original
2017-01-21 09:29:081285parcourir

Avec le précédent "Hello, World", le développement d'applications Yii semble être facile, ne tirez pas de conclusions hâtives :-), je me souviens quand j'ai commencé à utiliser le développement MFC il y a de nombreuses années, après avoir écrit le premier Hello , World, j'ai toujours l'impression de ne pas savoir par où commencer et je ne sais pas par où commencer à écrire des applications MFC. C'est parce que MFC fournit un grand nombre de bibliothèques de classes. ayant une compréhension préalable du framework d'application MFC et des principales bibliothèques de classes qu'il fournit, vous ne serez pratiquement pas en mesure d'écrire des applications et d'apprendre le framework Yii, vous devez également d'abord comprendre les principaux composants et certaines classes couramment utilisées qui composent les applications Yii. .

Comme mentionné dans le didacticiel précédent, Yii utilise MVC (Model-View-Controller) et a introduit le script d'entrée et la classe d'application principale CWebApplication. Une instance d'une classe d'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().

Instance d'application principale (CWebApplication)

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, protected/config/main.php). Dans le script, on renvoie ce tableau de configuration via :

return array(...); Pour appliquer cette configuration, on passe le nom du fichier de configuration en paramètre au constructeur de l'application, ou comme ci-dessous This est transmis à Yii::createWebApplication(). Cela se fait généralement dans le script d'entrée :

$app=Yii::createWebApplication($configFile); Composants de l'application

La fonctionnalité de l'application peut être facilement personnalisée ou améliorée grâce à son composant flexible. structure . 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 afin 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 cache au tableau des 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 (par exemple 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é.

Cycle de vie de CWebApplication

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

Pré-initialiser l'application via CApplication::preinit();

Définir le chargeur automatique et la gestion des erreurs des classes ;

Enregistrer les composants de classe de base

Charger la configuration de l'application

Initialiser l'application via CApplication::init ; () :

Enregistrer le comportement de l'application ;

Charger les composants statiques de l'application ;

Déclencher l'événement onBeginRequest ;

Traiter les demandes des utilisateurs :

Analyser la demande de l'utilisateur ;

Créer un contrôleur

Exécuter le contrôleur

Déclencher l'événement onEndRequest.

Classe de contrôle CController

Un contrôleur est une instance de CController ou de ses sous-classes. Il est créé par l'application à la demande de l'utilisateur. Lorsqu'un contrôleur s'exécute, il effectue l'action demandée, qui introduit généralement les modèles nécessaires et restitue les vues correspondantes. La forme la plus simple d'une action est une méthode de classe de contrôleur dont le nom commence par action.

Les contrôleurs ont généralement une action par défaut. Lorsque la demande de l'utilisateur ne précise pas une action à effectuer, l'action par défaut sera effectuée. Par défaut, le nom de l'action par défaut est index. Il peut être modifié en définissant CController::defaultAction.

Ce qui suit est le code le plus simple requis pour une classe de contrôleur. Étant donné que ce contrôleur n'a aucune action définie, les demandes qui lui seront adressées lèveront une exception.

class SiteController extends CController
{
}

Routage

Le format de base de l'URL permettant aux utilisateurs d'accéder aux pages Web est /index.php?r=XController/YAction, qui correspond au XController dans le sous-répertoire des contrôleurs de le répertoire protégé avec le code YAction de la classe XController définie en php. Par exemple, la route post/edit représente le PostController et son action d'édition. Par défaut, l'URL http://hostname/index.php?r=post/edit demande ce contrôleur et cette action. Modèle (classe CModel) Un modèle est une instance de CModel ou de l'une de ses sous-classes. Les modèles sont utilisés pour contenir les données et la logique métier qui y est associée.

Yii implémente deux types de modèles : le modèle de formulaire et l'Active Record. Les deux héritent de la même classe de base CModel.

Les modèles de formulaire sont des instances de CFormModel. Le modèle de formulaire est utilisé pour contenir les données obtenues à partir de la saisie de l'utilisateur. Ces données sont souvent acquises, utilisées, puis supprimées. Par exemple, dans une page de connexion, nous pouvons utiliser le modèle de formulaire pour représenter les informations de nom d'utilisateur et de mot de passe fournies par l'utilisateur final. Pour plus de détails, veuillez vous référer au formulaire d'utilisation.

Active Record (AR) est un modèle de conception permettant d'abstraire l'accès à une base de données dans un style orienté objet. Chaque objet AR est une instance de CActiveRecord ou de l'une de ses sous-classes. Représente une ligne dans la table de données. Les champs de la ligne correspondent aux propriétés de l'objet AR.

View View

View est un script PHP qui contient les principaux éléments d'interaction utilisateur. Il peut contenir des instructions PHP, mais nous recommandons que ces instructions ne modifient pas le modèle de données, et il est préférable de conserver sa simplicité (simplement sous forme de vue). Afin de parvenir à une séparation entre la logique et l'interface, de grandes sections de logique doivent être placées dans le contrôleur ou le modèle plutôt que dans la vue.

Par analogie avec les applications Windows, View est similaire à la classe Form des applications Windows, dans laquelle des contrôles servent à définir l'UI. Les contrôles correspondent au framework Yii et deviennent CWidget, qui est un composant principalement utilisé. pour représenter des données. Petits objets Généralement intégrés dans une vue pour produire une interface utilisateur complexe et indépendante. Par exemple, un widget de calendrier peut être utilisé pour rendre une interface de calendrier complexe. Les widgets rendent l'interface utilisateur plus réutilisable.

La page maître similaire à Asp.Net s'appelle Layout dans Yii.

Une mise en page est un fichier de vue spécial utilisé pour décorer une vue. Il contient généralement une partie commune de la vue dans l'interface utilisateur. Par exemple, la mise en page peut contenir des parties d'en-tête et de pied de page, puis intégrer le contenu. entre.

......en-tête ici......

......pied de page ici......$content stocke la vue du contenu Résultats du rendu.

Lors de l'utilisation de render(), la mise en page est appliquée implicitement. Le script de vue protected/views/layouts/main.php est le fichier de mise en page par défaut. Il peut être modifié en remplaçant CWebApplication::layout ou CWebApplication: :layout. personnaliser. Pour afficher une vue sans mise en page, appelez renderPartial() .

Ce qui précède présente plusieurs composants importants de l'application Yii. Vous pouvez vous référer à l'exemple "Hello, World", et la structure de fichiers de l'application Yii a également une définition par défaut. de l'application :

Framework de développement PHP Tutoriel Yii Framework (2) Bases de lapplication Web Yii

Avant de développer formellement des applications Yii, jetez d'abord un coup d'œil à la bibliothèque de classes fournie par Yii http://www.yiiframework.com/doc/api /, qui est répertorié dans la figure ci-dessous. Définition du package de la bibliothèque de classes fournie par le Framework :

Framework de développement PHP Tutoriel Yii Framework (2) Bases de lapplication Web Yii

Uniquement en comprenant d'abord les principaux composants de l'application Yii et les principales Les fonctions prises en charge par chaque package de classe vous permettront d'utiliser Yii de manière plus flexible à l'avenir pour développer des applications Web.

Ce qui précède est le contenu du tutoriel du framework de développement PHP Yii Framework (2) Bases de l'application Web Yii Pour plus de contenu connexe, veuillez faire 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