Yii Framework是一個基於元件、用於開發大型 Web 應用的高效能 PHP 框架。 Yii提供了今日Web 2.0應用開發所需的幾乎一切功能。 Yii是最有效率的PHP框架之一。 Yii是創辦人薛強的心血結晶,於2008年1月1日開始開發。
一個稍微大點的項目,如果按照yii產生的webapp來開發。所有的controller放到controllers資料夾下,所有的model放到models資料夾下面,如果你有 n 多個 controller 和 n 多的 model ,這種情況下維護程式碼將是一個非常痛苦的過程。為了避免這種情況,Yii 提供了一種 Modules(模組) 的目錄結構方式。
Modules(模組) 是一個獨立的單元,包含視圖、控制器和其它元件,它和一個應用的差異是不能單獨部署,模組都保存在應用的 moudules 目錄裡面。
你的專案可以分成 n 多個 Module,然後每一個 Module 有自己的 controllers 和 models 。這樣的組織架構,無論是開發,管理都要方便簡潔許多。
YII中的模組是非常靈活的,一個模組可以包含子模組。理論上,模組可以是無限嵌套。
模組的目錄結構(這裡以下面產生的目錄結構做說明)
modules 模組的存放目錄
└── admin 一個模組,模組的名字對應是目錄的名字,唯一。也是路由中的moduleid
├── components 模組使用的元件
├── controllers 包含控制器
│ └── DefaultController.## │ └── DefaultController.## │ └── DefaultController.## ## ├── models 模型類別檔案
├── AdminModule.php 模組的類別檔案
└── views 試圖檔案
── index.php視圖檔案
└── layouts 包含佈局檔案
基本的目錄結構如上,當然你可以在自己加入一些自訂的東西。
建立模組的方法(這裡我們透過yii 自帶的gii 產生器來建立模組)
<?php ...... 'modules'=>array( 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'123456',//你的密码访问时需要输入 'ipFilters'=>array('127.0.0.1','::1'), ), ),
'modules'=>array( 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'你的密码', ), 'admin', ),
class AdminModule extends CWebModule{ private$_assetsUrl; $this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.modules.admin.assets')); 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 中:
配置文件中也可以及添加对模块中属性初始化的参数例如:
'modules'=>array('admin'=>array('web_url'=>'www.phpernote.com'),
对应在 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框架上有更多的收获。
相关推荐:
以上是Yii framework框架模組開發的詳細內容。更多資訊請關注PHP中文網其他相關文章!