【小(xiǎo)編推薦】ThinkPHP3.2——前置和(hé)後置操作( ★↓zuò)

2014-06-26  ♥✘£β |   發布者:梁國(guó)‌Ω★¶芳   |  &n&≈bsp;查看(kàn):3320次

Thinkphp

前置和(hé)後置操作(zuò)指的(de)是♦ (shì)在執行(xíng)某個(gè)操作(zuò)方法→♠之前和(hé)之後會(huì)自(zì)動調用(ε↔yòng)的(de)方法,不(bù)過僅對(du"×ì)訪問(wèn)控制(zhì)器(qì)有(yǒσ♠σu)效。

其他(tā)的(de)分(fēn)層控制(zhì)器(qì)層和(h✔↔é)內(nèi)部調用(yòng)控制(zhì)器(qì)的(dγ↔♣₹e)情況下(xià)前置和(hé)後置操作(zuò)是(shì)無效的(de)δ∏≥。

系統會(huì)檢測當前操作(zuò)是(shì)否具有​₽≠≤(yǒu)前置和(hé)後置操作(zuò)↑λ©,如(rú)果存在就(jiù)會(huì)按照(z∏↕↕σhào)順序執行(xíng),前置和(hλ₹λé)後置操作(zuò)的(de)定義方式如(rú)下(x ∑¥ià):

  1. <?php
  2. namespace Home\Controller;
  3. use Think\Controller;
  4. class IndexController extends Controller{
  5. //前置操作(zuò)方法
  6. public function _before_index(){
  7. echo 'before<br/>';
  8. }
  9. public function index(){
  10. echo 'index<br/>';
  11. }
  12. //後置操作(zuò)方法
  13. public function _after_index(){
  14. echo 'after<br/>';
  15. }
  16. }

如(rú)果我們訪問(wèn) http://serverName/index.php/•↕§Home/Index/index

結果會(huì)輸出

  1. before
  2. index
  3. after

前置和(hé)後置操作(zuò)的(de)注意事(shì)項如(rú)下(xi÷☆↓ à):
1. 如(rú)果當前的(de)操作(zuò)并沒有(yǒu)定義操作(z₩"•uò)方法,而是(shì)直接渲染模闆文(wén)件(jiàn),那₽¥"₽(nà)麽如(rú)果定義了(le)前置和(hé) σ後置方法的(de)話(huà),依然會(huì)生(shēng)效。真正有($‍yǒu)模闆輸出的(de)可(kě)能(£Ωnéng)僅僅是(shì)當前的(de)操作(zuò),前置和(hé)後置操≈© <作(zuò)一(yī)般情況是(shì)沒有(yǒu)任ε₹何輸出的(de)。
2. 需要(yào)注意的(de)是(shì),在有(yǒu)些(₩♣xiē)方法裡(lǐ)面使用(yòng)了(le)•‍λαexit或者錯(cuò)誤輸出之類的(de)話∏←§(huà) 有(yǒu)可(kě)能(néng)不(bù)會(huì)←₹再執行(xíng)後置方法了(le)。例如(r≈∞ú),如(rú)果在當前操作(zuò)裡(lǐ)面調用(y↔→òng)了(le)系統Action的(de)error方法,那(nà)★♦↑麽将不(bù)會(huì)再執行(xíng)後置操作(zuò),但(dàn≤↔≤‍)是(shì)不(bù)影(yǐng)響sΩε∑uccess方法的(de)後置方法執行(xín¥☆≠"g)。