Maison >développement back-end >tutoriel php >Développement de modules de cadre Yii Framework

Développement de modules de cadre Yii Framework

小云云
小云云original
2017-11-16 10:56:421536parcourir

Yii Framework est un framework PHP hautes performances basé sur des composants pour développer des applications Web à grande échelle. Yii fournit presque tout ce dont vous avez besoin pour le développement d'applications Web 2.0 d'aujourd'hui. Yii est l'un des frameworks PHP les plus efficaces. Yii est le fruit de l'idée originale du fondateur Xue Qiang et a commencé son développement le 1er janvier 2008.

Un projet légèrement plus grand, s'il est développé selon la webapp générée par yii. Tous les contrôleurs sont placés dans le dossier des contrôleurs et tous les modèles sont placés dans le dossier des modèles. Si vous avez n plusieurs contrôleurs et n plusieurs modèles, la maintenance du code dans ce cas sera un processus très pénible. Pour éviter cette situation, Yii fournit une structure de répertoires de modules.

Les modules (module) sont une unité indépendante, comprenant des vues, des contrôleurs et d'autres composants. La différence entre celui-ci et une application est qu'il ne peut pas être déployé séparément. Les modules sont stockés dans le répertoire des modules de l'application.

Votre projet peut être divisé en n plusieurs modules, et chaque module possède ses propres contrôleurs et modèles. Une telle structure organisationnelle rend le développement et la gestion beaucoup plus pratiques et concis.

Les modules de YII sont très flexibles et un module peut contenir des sous-modules. En théorie, les modules peuvent être imbriqués à l'infini.

La structure des répertoires du module (la structure des répertoires générée ci-dessous sert d'explication)

modules Le répertoire de stockage du module
└── admin Un module, le nom de le module correspond uniquement au nom du répertoire. C'est aussi le moduleid
dans le routage ├── composants Les composants utilisés dans le module
├── les contrôleurs incluent les contrôleurs
│ └── DefaultController.php Contrôleur par défaut
├── messages Internationalisation
├── fichier de classe de modèle de modèles
├── fichier de classe de module AdminModule.php
└── fichiers de vue de vues
├── vue par défaut par défaut
│ ├── vue index.php le fichier
└── layouts contient des fichiers de mise en page

La structure de base des répertoires est la même que ci-dessus. Bien sûr, vous pouvez ajouter des éléments personnalisés vous-même.

Comment créer un module (ici nous utilisons le générateur gii fourni avec yii pour créer le module)

Créez la structure de base grâce au générateur gii fourni avec yii La méthode pour tourner. sur gii est Modifiez le contenu suivant dans le fichier config/main.php de votre application :

<?php    
   ......    
  &#39;modules&#39;=>array(    
  &#39;gii&#39;=>array(    
 &#39;class&#39;=>&#39;system.gii.GiiModule&#39;,    
  &#39;password&#39;=>&#39;123456&#39;,//你的密码访问时需要输入    
 &#39;ipFilters&#39;=>array(&#39;127.0.0.1&#39;,&#39;::1&#39;),    
  ),    
  ),

Visitez ensuite l'url de votre application/index.php?r=gii, ouvrez-le et sélectionnez le module. Option Générateur dans le menu de gauche. Vous verrez l'écran suivant

Entrez le nom du module dans Module ID, j'ai entré admin ici, puis cliquez sur le bouton Aperçu. Comme indiqué ci-dessous, il vous montre tous les fichiers qui seront générés, vous permettant de les prévisualiser avant d'en créer un nouveau :

Cliquez ensuite sur le bouton Générer pour générer tous les fichiers. Étant donné que le processus du serveur Web nécessite un accès en écriture, assurez-vous que votre dossier /protected est accessible en écriture par l'application.

Configurer à l'aide de ce module

Nous configurons le fichier de configuration principal protected/config/main.php Le code suivant doit être modifié et 'admin' est ajouté :

 &#39;modules&#39;=>array(    
 &#39;gii&#39;=>array(    
  &#39;class&#39;=>&#39;system.gii.GiiModule&#39;,    
&#39;password&#39;=>&#39;你的密码&#39;,    
 ),    
 &#39;admin&#39;,    
),

Après avoir enregistré les modifications ci-dessus, notre nouveau module d'administration est prêt à être utilisé. Nous pouvons accéder au module que nous avons créé via :

yourapp/index.php?r=admin/default/index

Utiliser la mise en page dans le module

nous Visitez index.php ?r=admin/default/index et vous constaterez que le module utilise le fichier /protected/views /layouts/main.php sous votre application, et nous souhaiterons peut-être utiliser /protected/modules/admin/views/layouts /main Le fichier .php permet au module d'administration d'avoir une vue de mise en page indépendante. Nous pouvons ajouter le code suivant dans :

protectedmodulesadmincontrollersDefaultController.php.

public $layout='application.modules.admin.views.layouts.main';

Nous copions de /protected/views/layouts/main.php vers /protected/modules/ admin /views/layouts/ , légèrement modifié pour que le module ait une vue de mise en page indépendante.

Utiliser les actifs dans le module

Lors de l'ajout d'un nouveau module, celui-ci inclura généralement des fichiers image, des fichiers CSS, des fichiers JavaScript, etc. Les modules

peuvent être référencés directement depuis le répertoire principal du site. Mais si vous souhaitez créer un module pouvant être référencé n'importe où et éviter les conflits de noms, vous devez utiliser des ressources.

Le processus est (le nom du module ici est admin) :

1. Placez les ressources dont vous avez besoin sous modules/admin/assets.

2. Ensuite, via CAssetManager, Yii::app()->assetManager peut publier automatiquement des ressources privées dans le répertoire/actifs du site Web du répertoire public

3. -dossier conflictuel sous le répertoire /assets, tel que 2b31b42b, et copiez les fichiers dans votre répertoire modules/admin/assets.

Par exemple, mon module est Admin. Le chemin du fichier est obtenu via le code suivant. Modifiez le fichier protectedmodulesadminAdminModule.php.

 class AdminModule extends CWebModule{    
 private$_assetsUrl;    
 $this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias(&#39;application.modules.admin.assets&#39;));    
 return$this->_assetsUrl;    
 }    
 public function setAssetsUrl($value){    
$this->_assetsUrl=$value;    
  }    
 }

然后,在 /protected/modules/admin/views/layouts/main.php 中使用 $this->module->assetsUrl 就可以调用你的css等文件了。模板文件的代码如下:

<link rel="stylesheet" type="text/css" href="<?php echo $this->module->assetsUrl; ?>/css/screen.css" />

4,通过如上操作,该模块只要把admin目录拷贝,就可以多次复用了。

模块的配置,使用方法

在配置文件 /config/main.php 中:

配置文件中也可以及添加对模块中属性初始化的参数例如:

 &#39;modules&#39;=>array(&#39;admin&#39;=>array(&#39;web_url&#39;=>&#39;www.phpernote.com&#39;),

对应在 Controller 中的访问方式是:

Yii::app()->controller->module->web_url;

作为程序员,我们要知道,Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。

希望本节内容能让大家在Yii框架上有更多的收获。

相关推荐:

简单介绍Yii2的使用场景

推荐10款安装Yii源码(收藏)

PHP的Yii框架中的属性Property

yii2框架的下载安装图文教程

Yii2利用表单进行文件上传的实例讲解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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