内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

【PHP-ZF】基礎(chǔ)知識學(xué)習(xí)筆記(一)

- zendframework官網(wǎng)

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的阜城網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!class 1初步認(rèn)識php zendframework 框架、配置開發(fā)環(huán)境、創(chuàng)建zf項(xiàng)目

1.php常用框架:zendframework,thinkphp(國人開發(fā)),yii(外企用的較多),cakephp

2.mvc框架:model 模型,view 試圖,controller 控制器

3.zf的優(yōu)勢:固定的文件夾歸類,程序更加規(guī)范化,開發(fā)效率提高了,程序的可讀性增加,可維護(hù)性增加等等,不足之處就是配置比較復(fù)雜。

4.開發(fā)環(huán)境配置步驟:
1-下載庫,
2-創(chuàng)建zf工程(手工創(chuàng)建,使用ZendStudio創(chuàng)建zf項(xiàng)目,使用zf.bat程序創(chuàng)建--進(jìn)入zf.bat所在目錄,使用zf.bat create project 項(xiàng)目路徑 創(chuàng)建項(xiàng)目)詳細(xì)見:http://my.oschina.net/maomi/blog/86080
3-使用zendstudio創(chuàng)建一個(gè)空項(xiàng)目
4-把創(chuàng)建的項(xiàng)目結(jié)構(gòu)拷貝到新建的空項(xiàng)目中
5-引入zf庫到該項(xiàng)目中,將zf解壓后library中的zend包拷貝到library目錄下即可
6-配置apache,讓它支持zf框架(wamp配置步驟見:http://my.oschina.net/maomi/blog/86076)
6.1開啟PDO和PDO相關(guān)數(shù)據(jù)庫引擎
;extension=php_pdo_mysql.dll 去掉前面的分號就可以(wamp已經(jīng)配置好這一點(diǎn))
6.2開啟apache的rewrite模塊
在httpd.conf文件中,啟用 LoadModule rewrite_module modules/mod_rewrite.so
再將, AllowOverride None 改成 All
7-配置虛擬主機(jī)(自定義和wamp安裝環(huán)境不一樣)
自定義:在httpd.conf文件中,啟用---->

dns 添加示例: 127.1.10 marong.com // 前面是ip地址,后面是在瀏覽器中輸入的地址
8-重新啟動apache服務(wù)器

---------------------------------------------------------------------------------------------------------

class 2zend原理剖析、程序調(diào)試、zend整合數(shù)據(jù)庫

1.zend原理剖析
hosts 127.0.0.1 marong.com :
瀏覽器地址marong.com ----http請求---->apache服務(wù)器----轉(zhuǎn)發(fā)給index.php------>public/index.php(總控,apache 使用反射機(jī)制)-------->controller/indexController.php(分控:init方法默認(rèn)執(zhí)行 - indexAction方法執(zhí)行[可以使用model] - 引入對應(yīng)模板視圖)------------>生成靜態(tài)頁面--------->apache服務(wù)器--------->瀏覽器

2.程序調(diào)試
1-使用 file_put_contents在不中斷程序的情況下,輸出信息到文件,可以隨時(shí)查看記錄
2-可以通過debug工具來完成調(diào)試
3-如果提示 require_once()所引用的文件不存在,則可以將文件的引用路徑改為絕對路徑
如: require_once APPLICATION_PATH.\'../models/Message.php\';
其中,APPLICATION_PATH是在總控中初始化的全局變量

3.zend整合數(shù)據(jù)庫(示例)
1-在application.ini中配置數(shù)據(jù)庫信息
[mysql]
db.adapter = PDO_MYSQL
db.params.host = localhost
db.params.username = root
db.params.pwd = root
db.params.dbname = test
2-在bootstrap.php中初始化數(shù)據(jù)庫適配器
(最好是新建一個(gè)抽象父類baseController,該類專門供其他需要初始化數(shù)據(jù)庫的類來繼承,繼承該類的子類必須
require_once(‘baseController.php’))
class BaseController extends Zend_Controller_Action{
public function init(){

}

}

注意:http://blog.csdn.net/wang_jingxiang/article/details/6011210(另一種配置數(shù)據(jù)庫的方法)

3-在models文件夾中編寫模型類(模型類文件名應(yīng)該跟要操作的數(shù)據(jù)表名稱相同)
//設(shè)置私有變量,數(shù)據(jù)庫表名和表的主鍵
4-在indexController的index方法中,實(shí)例化模型類并查詢數(shù)據(jù),將數(shù)據(jù)傳遞給模板對象

5-在模板中引用變量
6-在.htaaccess文件中設(shè)置url重寫規(guī)則,將所有以.php結(jié)尾的地址都指向 index.php總控文件,讓項(xiàng)目只有一個(gè)入口

4.新建控制器方法和對應(yīng)視圖

5.注意事項(xiàng)
1-控制器中的方法名(Action前面的單詞)必須是小寫,否則將無法正常解析
2-必須設(shè)置url重寫規(guī)則,保證項(xiàng)目只有一個(gè)入口文件(存在不理解的問題,待解決)

---------------------------------------------------------------------------------------------------------

class 3Zend Framework 中 layout和view詳解

1、使用Zend_View與Zend_Layout玩布局

layout是非常方便的視圖庫,這里列舉常用的ZF版本為1.11.11的具體用法
在layout中加載其他layout頁面
默認(rèn)的layout頁面,nav頁面與layout同一個(gè)目錄

<?php$this->render(\'nav.phtml\')?>

設(shè)置其他layout或關(guān)閉:

//設(shè)置其他控制器中的layout $this->_helper->layout->setLayout(\'japan_layout\'); //設(shè)置其他視圖中的layout $this->layout()->setLayout(\'chinese_layout\'); //關(guān)閉控制器中的layout $this->_helper->layout->disableLayout(); //關(guān)閉視圖中中的layout $this->layout()->disableLayout();

2、如何在controller中傳遞變量到view,然后輸出變量

publicfunctionindexAction() { //actionbody //為變量賦值 $this->view->a="Hay"; $this->view->b="bbb"; $this->view->c="ccc"; }

從上邊的程序可以看出來,用此方式賦值特麻煩,要多次賦值。可以將變量放進(jìn)一個(gè)數(shù)組或者對象中。assign()方法呢就允許通過數(shù)組或者對象賦值:

publicfunctionindexAction() { //actionbody $array=array( \'a\'=>"Hay", \'b\'=>"bbb", \'c\'=>"ccc", ); $this->view->assign($array); }

其效果和上邊效果是一樣的,那么通過對象賦值就有點(diǎn)小不一樣了,就是要先把對象轉(zhuǎn)型為數(shù)組:

publicfunctionindexAction() { //actionbody $obj=newstdClass(); $obj->a="Hay"; $obj->b="bbb"; $obj->c="ccc"; $this->view->assign((array)$obj); }

assign()方法還有一種用法就是使用兩個(gè)字符串作為assign()方法的參數(shù)。這樣第一個(gè)參數(shù)為賦值的變量名,第二個(gè)參數(shù)作為對應(yīng)的值。如下:

$this->view->assign(\'a\',"Hay"); $this->view->assign(\'b\',"bbb"); $this->view->assign(\'c\',"ccc");

至于視圖部分代碼如下:index.phtml

<?php echo$this->a."<br>"; echo$this->b."<br><br><br><br>"; echo$this->c."<br>"; ?>

3、禁用視圖并輸出內(nèi)容

a、先輸出內(nèi)容再禁用試圖

$this->_helper->viewRenderer->setNoRender(true);//可省略 print_r(Zend_Json::encode(array(\'error\'=>403)));//輸出內(nèi)容 exit();//禁用試圖 return;//可省略

輸出結(jié)果:

{"error":403}

b、直接禁用試圖同時(shí)輸出內(nèi)容

$this->_helper->viewRenderer->setNoRender(true);//可省略 exit(json_encode(array(\'error\'=>403))); return;//可省略

輸出結(jié)果:

{"error":403}

c、通過拋出“error”關(guān)閉視圖

exit(json_encode(\'error\'));//"error" exit(\'error\');//error

4、render,_forward,_redirect的用法和區(qū)別

render:
不指定render
結(jié)果:<當(dāng)前Module>/<當(dāng)前Controller>/<當(dāng)前Action>.phtml
$this->render(‘bar’);
Result: <當(dāng)前Module>/<當(dāng)前Controller>/bar.phtml

_forward:
$this->_forward(‘bar’);
Result: <當(dāng)前Module>/<當(dāng)前Controller>/bar
$this->_forward(‘bar’,’foo’);
Result: <當(dāng)前Module>/foo/bar
$this->_forward(‘bar’,’foo’,’hoge’);
Result: hoge/foo/bar
$params = array(
‘a’ -> ‘1’,
‘b’ -> ‘2\'
);
$this->_forward(‘bar’,’foo’,’hoge’,$params);
Result: hoge/foo/bar/a/1/b/2

_redirect:
$this->_redirect(‘/hoge’);
Result: /hoge
$this->_redirect(‘/hoge/foo’);
Result: /hoge/foo
$this->_redirect(‘/hoge/foo/bar’);
Result: /hoge/foo/bar
$this->_redirect(‘http://localhost/hoge/foo/bar&#39’);
Result: http://localhost/hoge/foo/bar
$this->_redirect(\'http://localhost/hoge/foo/bar?a=1&b=2&#39\');
Result: http://localhost/hoge/foo/bar?a=1&b=2

5、placeholder 的使用和設(shè)置

placeholder 的使用:官方教程

//在bootstarp中 $this->bootstrap(\'view\'); $view=$this->getResource(\'view\'); //成功調(diào)用了placeholder $view->placeholder(\'test’)->setPrefix(\'<h1>HI</h1>’);

placeholder 的設(shè)置:在你的applicateion.ini中加入resources.view[] = "";如果沒有這個(gè)設(shè)置,你的bootstrap中的$this->bootstrap(\'view\');將會報(bào)錯(cuò)

---------------------------------------------------------------------------------------------------------

class 4 ZendFramework 如何引入css、圖片、及js代碼

虛擬目錄指向 public 目錄:

引入圖片時(shí),可以設(shè)置虛擬目錄,用\'/images/a.jpg\'這樣的方式來引入public目錄下的圖片,css等內(nèi)容。

虛擬目錄指向非 public 目錄:

解決:方法是使用絕對路徑來引入css,這樣就絕對錯(cuò)不了了,因此考慮設(shè)置一個(gè)常量,路徑直指public

步驟一:Bootstrap.php 由于這個(gè)文件每次都被調(diào)用,所以就把常量設(shè)到這里了,代碼如下

<?php classBootstrapextendsZend_Application_Bootstrap_Bootstrap{ publicfunction__construct($application){ parent::__construct($application); $url=dirname(__FILE__);//獲取當(dāng)前文件Bootstrap.php目錄路徑 $url=str_replace(\'application\',\'public\',$url);//把當(dāng)前路徑更換為public路徑 $url=str_replace(\'\\\',\'/\',$url);//更改路徑中的“”為“/” define(\'__PUBLIC__\',$url);//定放常量 } } ?>

步驟二:控制器中代碼

<?php classAdminControllerextendsZend_Controller_Action{ publicfunctionindexAction(){ $this->view->public=__PUBLIC__;//分配到MVC中的“V”也即視圖 $this->render(\'index\');//可以不寫 } } ?>

步驟三:視圖中代碼 index.phtml

<linkrel="stylesheet"type="text/css"href="<?phpecho$this->public;?>/style/admin.css"/>

P.S.火狐瀏覽器、google的chrome 不支持絕對路徑,使用下面的代碼,更換步驟一中代碼,其他不變

<?php classBootstrapextendsZend_Application_Bootstrap_Bootstrap{ publicfunction__construct($application){ parent::__construct($application); $url=$_SERVER[\'SCRIPT_NAME\']; $url=dirname($url); $url=str_replace(\'\\\',\'/\',$url); define(\'__PUBLIC__\',$url); } } ?>

---------------------------------------------------------------------------------------------------------

class 5 ZendFramework 配置鏈接MySQL實(shí)例

在application/configs/application.ini中添加數(shù)據(jù)庫的配置信息

[production]//在這一行的后面添加數(shù)據(jù)庫連接信息 resources.db.adapter=PDO_MYSQL resources.db.params.host=127.0.0.1 resources.db.params.username=root resources.db.params.password= resources.db.params.dbname=zend_example

在index.php入口文件中加入:

$config=newZend_Config_Ini(\'../application/configs/application.ini\',\'production\'); $register=Zend_Registry::getInstance(); $register->set(\'config\',$config); $db=Zend_Db::factory($config->resources->db); Zend_Db_Table::setDefaultAdapter($db);

網(wǎng)頁名稱:【PHP-ZF】基礎(chǔ)知識學(xué)習(xí)筆記(一)
網(wǎng)頁地址:http://www.rwnh.cn/article42/cgjjhc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、微信小程序、網(wǎng)站排名定制網(wǎng)站、小程序開發(fā)、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
庆云县| 平果县| 泰宁县| 吴旗县| 铁岭市| 托克逊县| 松阳县| 泰顺县| 城步| 元阳县| 开平市| 九龙县| 衡山县| 红桥区| 东兰县| 平阴县| 五大连池市| 乡宁县| 沈丘县| 安西县| 淮安市| 蓬溪县| 黄山市| 汾阳市| 新干县| 祁东县| 临桂县| 朝阳市| 瑞金市| 喜德县| 阿坝| 廉江市| 祁东县| 潜山县| 白城市| 铜梁县| 大邑县| 黑山县| 大英县| 安吉县| 龙泉市|