亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

Zend Framework教程之模型Model基本規則和使用方法

2024-05-04 23:43:33
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Zend Framework教程之模型Model基本規則和使用方法,結合實例形式詳細分析了Zend Framework中模型的原理與具體使用技巧,需要的朋友可以參考下
 

本文實例講述了Zend Framework教程之模型Model基本規則和使用方法。分享給大家供大家參考,具體如下:

這里講講Zend中的model。其實Zend中的Model處理是相當簡單的。

這主要得益于autoload功能。不像其它框架,為model定義復雜的基類。

如果要定義model,不得不要繼承一個model的基類,才可以使用具體的功能。

Zend中并沒有對模型進行封裝。

原因大概是Model主要是和具體業務邏輯相關的,進行過多的封裝,只會畫蛇添足。

Zend使用了autoload和namespace功能,很委婉的解決了這個問題。

創建一個zendframework項目model_demo1

為了方便查看錯誤我們可以在配置文件中/model_demo1/application/configs/application.ini打開錯誤信息開關如下:

phpSettings.display_startup_errors = 1phpSettings.display_errors = 1resources.frontController.params.displayExceptions = 1

接下來簡單的講講zend中的model:

1.默認的Model

一個標準的webapp中會有application/models這樣的目錄。不難看出,models用來存放你的app的model

這個目錄的強大之處在于,如果你在models目錄中定義了具體的class。zend會自動的幫我們加載,當然要遵循一定的約定,前提是:

例如,用zf命令行創建一個名為Test的Model

zf create model Test

Creating a model at /www/model_demo1/application/models/Test.php

Updating project profile '/www/model_demo1/.zfproject.xml'

刷新一下項目目錄可以看到,新增了如下文件/model_demo1/application/models/Test.php

文件內容如下:

<?phpclass Application_Model_Test{}

不難看出我們要使用Model要遵循如下規則:

1).以Application_Model_開頭,然后后面是自定義的model的類名稱。

即:我們web應用的model的目錄結構為/model_demo1/application/models/Test.php

對應的命名空間為Application_Model_Test。

application對應Application

models對應models

Test是model的類文件的名稱。

類的名稱按照約束就是:class Application_Model_Test {

也不難理解Application_Model_,這樣的規則遵循zend framework的autoload和namespace的約定。

2).Application命名空間

其實Application也是我們在配置文件中配置的應用的命名空間。

如果把配置文件的appnamespace = "Application"修改為appnamespace = "App"。

我們原先的程序,就會報錯了。原因不言而喻。所以zend也沒有那么智能。

如果要詳細追究其原理,大概是如下的類完成這個功能的:

Zend_Application_Bootstrap_BootstrapZend_Application_Module_Autoloader

2.自定義命名空間

Zend是默認的命名空間。例如在/model_demo1/library/Zend/Test.php創建類Zend_Test

<?phpclass Zend_Test{ static public function echoZendTest(){  echo 'ZendTest<br/>'; }}

不需要做任何操作,就可以在程序中使用。例如:Zend_Test::echoZendTest();
這里簡單說明自定義命名空間的兩種方法:

1).使用application.ini配置文件

默認命名空間

appnamespace = "Application"

自定義命名空間

autoloadernamespaces.app = "App_"autoloadernamespaces.my = "MyApp_"

或者

autoloadernamespaces[] = "App_"autoloadernamespaces[] = "MyApp_"

具體實現類為:Zend/Application.php

public function setOptions(array $options){ if (!empty($options['config'])) {  if (is_array($options['config'])) {   $_options = array();   foreach ($options['config'] as $tmp) {    $_options = $this->mergeOptions($_options, $this->_loadConfig($tmp));   }   $options = $this->mergeOptions($_options, $options);  } else {   $options = $this->mergeOptions($this->_loadConfig($options['config']), $options);  } } $this->_options = $options; $options = array_change_key_case($options, CASE_LOWER); $this->_optionKeys = array_keys($options); if (!empty($options['phpsettings'])) {  $this->setPhpSettings($options['phpsettings']); } if (!empty($options['includepaths'])) {  $this->setIncludePaths($options['includepaths']); } if (!empty($options['autoloadernamespaces'])) {  $this->setAutoloaderNamespaces($options['autoloadernamespaces']); }

2).在Bootstrap.php文件中

例如/model_demo1/application/Bootstrap.php

<?phpclass Bootstrap extends Zend_Application_Bootstrap_Bootstrap { protected function _initAutoload() {  $app = $this->getApplication ();  $namespaces = array (    'AppTest'  );  $app->setAutoloaderNamespaces ( $namespaces );  return $app; }}

/model_demo1/library/AppTest/Test.php

<?phpclass AppTest_Test{ static public function echoAppTestTest(){  echo 'AppTestTest<br/>'; }}

/model_demo1/application/controllers/IndexController.php

AppTest_Test::echoAppTestTest();

3).使用具體的類完成自動加載

$auto_loader = Zend_Loader_Autoloader::getInstance();$resourceLoader = new Zend_Loader_Autoloader_Resource(array(  'basePath' => '/www/model_demo1/application',  'namespace' => '',  'resourceTypes' => array(    'model' => array(      'path' => 'models',      'namespace' => 'Model'    )  )));$auto_loader->pushAutoloader($resourceLoader);$auto_loader->registerNamespace(array('AppTest2_'));AppTest2_Test::echoAppTest2Test();Model_ModelTest::echoModelModelTest();

/model_demo1/application/models/ModelTest.php

<?phpclass Model_ModelTest{ static function echoModelModelTest(){  echo 'Model_ModelTest<br/>'; }}

/model_demo1/library/AppTest2/Test.php

<?phpclass AppTest2_Test{ static public function echoAppTest2Test(){  echo 'AppTest2Test<br/>'; }}
 


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
不卡av日日日| 成人乱色短篇合集| 成人激情免费在线| 亚洲aa中文字幕| 国产综合色香蕉精品| 久久视频在线直播| 欧美大片第1页| 欧美成人免费在线视频| 欧美激情视频一区二区三区不卡| 亚洲欧美日本另类| 亚洲二区中文字幕| 最新国产精品拍自在线播放| 亚洲国产精品热久久| 欧美最猛性xxxxx亚洲精品| 久久777国产线看观看精品| 一本一本久久a久久精品牛牛影视| 久久影视电视剧凤归四时歌| 国产午夜一区二区| 欧美中文字幕在线视频| 91精品久久久久久综合乱菊| 搡老女人一区二区三区视频tv| 久久久久日韩精品久久久男男| 久久精品成人欧美大片| www.日韩.com| 啪一啪鲁一鲁2019在线视频| 久久艹在线视频| 日韩在线精品一区| 激情久久av一区av二区av三区| 91网站在线免费观看| 日韩美女av在线| 日韩欧美国产网站| 亚洲国产免费av| 欧美高清自拍一区| 久久夜色精品国产| 久久精品亚洲94久久精品| 97免费视频在线| 亚洲在线观看视频| 国产精品久久久久久久7电影| 久久久久在线观看| 国内精品久久久久| 欧美高清videos高潮hd| 日韩美女写真福利在线观看| 亚洲free嫩bbb| 热门国产精品亚洲第一区在线| 欧美国产日韩中文字幕在线| 在线国产精品播放| 日韩国产精品一区| 久久国产精品首页| 国产精品福利片| 久久久久久久电影一区| 久久综合国产精品台湾中文娱乐网| 国产精品久久久久久久久久久久久| 91av在线精品| 精品国产区一区二区三区在线观看| 98精品在线视频| 九九热r在线视频精品| 国产99久久久欧美黑人| 欧美激情亚洲自拍| 精品美女国产在线| 欧美乱妇高清无乱码| 亚洲成人精品av| 久久精品99久久久久久久久| 国产日韩欧美在线| 97在线观看视频国产| 亚洲a中文字幕| 9.1国产丝袜在线观看| 精品久久久久久中文字幕| 亚洲精品国产美女| 国产日韩欧美夫妻视频在线观看| 国产不卡一区二区在线播放| 国产视频观看一区| 色妞欧美日韩在线| 狠狠色香婷婷久久亚洲精品| 成人黄色片网站| 日韩av在线资源| 8050国产精品久久久久久| 日韩电影大全免费观看2023年上| 国产日本欧美视频| 欧美特黄级在线| 俺去亚洲欧洲欧美日韩| 2025国产精品视频| 搡老女人一区二区三区视频tv| 亚洲第一国产精品| 欧美成年人视频网站欧美| 日韩在线视频二区| 最近2019好看的中文字幕免费| 欧美精品18videos性欧| 在线亚洲欧美视频| 91精品视频专区| 国产在线观看不卡| 欧美视频中文字幕在线| 亚洲大胆人体在线| 国产成人高潮免费观看精品| 日韩a**站在线观看| 亚洲一区二区日本| 亚洲精品丝袜日韩| 久久亚洲电影天堂| 欧美一区二区三区……| 亚洲第一福利网站| 欧美精品久久久久a| 亚洲午夜国产成人av电影男同| 国产精品久久久久久久久久久新郎| 欧美夜福利tv在线| 疯狂蹂躏欧美一区二区精品| 中文国产成人精品久久一| 精品视频在线播放| 久久精品国产久精国产思思| 欧美有码在线观看| 国产成人一区二区三区| 欧美精品免费看| 精品国产91久久久| 日韩激情av在线免费观看| 亚洲成人av在线| 亚洲性av网站| 中文字幕国产精品| 红桃视频成人在线观看| 九九热这里只有在线精品视| 国产女人精品视频| 亚洲欧美制服第一页| 国产精品日韩在线观看| 日韩电视剧在线观看免费网站| 国模私拍视频一区| 欧美在线观看一区二区三区| 午夜精品一区二区三区在线视| 岛国视频午夜一区免费在线观看| 国产精品久久77777| 国产日本欧美一区二区三区| 精品欧美激情精品一区| 精品国产一区二区三区在线观看| 欧美大片免费看| 久久久成人的性感天堂| 韩国v欧美v日本v亚洲| 欧美另类在线播放| 成人国产精品免费视频| 国产精品福利网站| 久久久久在线观看| 一级做a爰片久久毛片美女图片| 国产精品极品美女粉嫩高清在线| 欧美激情性做爰免费视频| 欧美国产高跟鞋裸体秀xxxhd| 91免费国产网站| 国产一区在线播放| 国产在线视频2019最新视频| 亚洲国产精品资源| 中文字幕在线国产精品| 欧美精品aaa| 日韩欧美在线视频免费观看| 国产亚洲精品综合一区91| 亚洲成色999久久网站| 欧美一区深夜视频| 成人欧美在线视频| 日韩中文字幕亚洲| 欧美成人中文字幕在线| 国产一区二区在线免费视频| 久久亚洲综合国产精品99麻豆精品福利| 欧美日本高清视频| 日本久久亚洲电影| 亚洲第一视频网站| 欧美日韩免费网站| 亚洲精品久久在线| 日韩不卡中文字幕| 亚洲精品成a人在线观看| 国产精品视频在线观看| 成人国产在线激情|