ホームページ  >  記事  >  バックエンド開発  >  Yiiフレームワークフレームワークモジュールの開発

Yiiフレームワークフレームワークモジュールの開発

小云云
小云云オリジナル
2017-11-16 10:56:421514ブラウズ

Yii Framework は、大規模な Web アプリケーションを開発するためのコンポーネントベースの高性能 PHP フレームワークです。 Yii は、今日の Web 2.0 アプリケーション開発に必要なほとんどすべてを提供します。 Yii は、最も効率的な PHP フレームワークの 1 つです。 Yii は創設者 Xue Qiang の発案で、2008 年 1 月 1 日に開発が開始されました。

yii によって生成された Web アプリに従って開発された場合は、少し大きなプロジェクト。すべてのコントローラーはコントローラー フォルダーの下に配置され、すべてのモデルはモデル フォルダーの下に配置されます。n 個のコントローラーと n 個の複数のモデルがある場合、この場合のコードの保守は非常に面倒なプロセスになります。この状況を回避するために、Yii はモジュールのディレクトリ構造を提供します。

モジュール (モジュール) は、ビュー、コントローラー、その他のコンポーネントを含む独立したユニットです。アプリケーションとの違いは、モジュールをアプリケーションのモジュール ディレクトリに個別に格納できないことです。

プロジェクトは n 個のモジュールに分割でき、各モジュールには独自のコントローラーとモデルがあります。このような組織構造により、開発と管理がより便利かつ簡潔になります。

YII のモジュールは非常に柔軟であり、モジュールにはサブモジュールを含めることができます。理論上、モジュールは無限にネストできます。

モジュールのディレクトリ構造(以下に生成されるディレクトリ構造を説明として使用します)

modules モジュールの格納ディレクトリ
└── admin はモジュールの名前に対応します。 、ユニークです。ルーティングの moduleid でもあります
§── コンポーネント モジュールで使用されるコンポーネント
§── コントローラーにはコントローラーが含まれます
│ └── DefaultController.php デフォルトのコントローラー
§── メッセージ 国際化
§── モデル モデル クラス ファイル
§── AdminModule.php モジュールクラスファイル
└── views ビューファイル
§──default デフォルトビュー
│ §──index.php ビューファイル
└──layouts にはレイアウトファイルが含まれています
基本的なディレクトリ構造は以下の通りです, もちろん、自分でカスタムを追加することもできます。

モジュールの作成方法 (ここでは、yii に付属の gii ジェネレーターを使用してモジュールを作成します)

yii に付属の gii ジェネレーターを使用して基本構造を作成します。gii を有効にする方法は、アプリケーションの構成を変更することです。 /main. 次のコンテンツが php ファイル内にあります:

<?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;),    
  ),    
  ),

次に、url your application/index.php?r=gii にアクセスして、開き、左側のメニューの [モジュール ジェネレーター] オプションを選択します。次の画面が表示されます

「モジュールID」にモジュールの名前を入力し、ここでは「admin」と入力し、「プレビュー」ボタンをクリックします。以下に示すように、生成されるすべてのファイルが表示され、ファイルを作成する前にプレビューすることができます:

次に、[生成] ボタンをクリックしてすべてのファイルを生成します。 Web サーバー プロセスには書き込みアクセスが必要なため、/protected フォルダーがアプリケーションから書き込み可能であることを確認してください。

このモジュールの使用を設定します

メイン設定ファイル protected/config/main.php を設定します。次のコードを変更する必要があり、「admin」が追加されます:

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

上記の変更を保存した後、新しい管理者が設定します。モジュールを使用する準備ができました。作成したモジュールには次のアドレスからアクセスできます:

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

モジュール内のレイアウトを使用します

index.php?r=admin/default/index にアクセスしますモジュールがアプリケーションの下で /protected/views /layouts/main.php ファイルを使用していることがわかります。また、/protected/modules/admin/views/layouts /main.php ファイルを使用して、管理モジュールが独立したレイアウト ビューがあります。次のコードを

protectedmodulesadmincontrollersDefaultController.php に追加できます。

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

/protected/views/layouts/main.php から /protected/modules/admin/views/layouts/ にコピーします。モジュールが独自のレイアウト ビューを持つように変更されます。

モジュールでのアセットの使用

新しいモジュールを追加する場合、通常、画像ファイル、CSS ファイル、JavaScript ファイルなどが含まれます。

モジュールは、Web サイトのメイン ディレクトリから直接参照できます。ただし、どこでも参照できるモジュールを作成し、名前の競合を回避したい場合は、アセットを使用する必要があります。

プロセスは次のとおりです (ここでのモジュール名は admin です):

1. 使用する必要があるリソースを modules/admin/assets の下に置きます。

2. その後、Yii::app()->assetManager は、パブリック ディレクトリ内の Web サイト ディレクトリ/assets にプライベート リソースを自動的に公開できます

3. Yii は、Web サイト内の /assets の下にランダムなリソースを自動的に作成します。ディレクトリ 2b31b42b などの競合しないフォルダーを選択し、 modules/admin/assets ディレクトリ内のファイルをそこにコピーします。

たとえば、私のモジュールは Admin です。ファイル パスは、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利用表单进行文件上传的实例讲解

以上がYiiフレームワークフレームワークモジュールの開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。