首頁 >後端開發 >php教程 >Thinkphp入門 二 (46)

Thinkphp入門 二 (46)

WBOY
WBOY原創
2016-08-08 09:22:571093瀏覽

【空操作處理】

看下列圖:

實際情況:我們的User控制器沒有hello()這個方法

一個對象去訪問這個類不存在的方法,那麼它會去訪問”魔術方法__call()”

  使用者存取一個不存在的操作—》解決:給每個控制器定義個_empty()方法來處理

  第二個空操作解決方法:定義一個一個空操作解決方法

【空模組處理】

我們使用一個類,但是現在這個類還沒有被include進來。

我們可以透過自動載入機制處理__autoload(),如果這個自動載入機制也沒有找到這個類,就會報錯。

即是請求一個空模組

  解決一:定義一個空的控制器、空模組

  解決方法二:

  解決方法二:

給裡面,便是放入我們函數庫檔案的地方

【模組分組】

  1.

控制器進行分組設定

控制器進行分組設定

.

  3. 配置變數需要分組

  4.

做配置config.php

  4. 做設定config.php ,在呼叫之前、或呼叫之後可以做一些額外的工作,就稱之為前置操作、後置操作

當我們請求這個網址:http://網址/index.php/Admin/Goods/zhanshi,在方法存在的情況下,這個動作在哪發生的,App.class.php  的exec()方法裡邊

裡面的前置操作,能夠在zhanshi()執行時,先執行裡面

裡面的前置操作,能夠在zhanshi()執行時,先執行裡面

的後置操作,能夠在zhanshi()被執行後,再執行

  一個類別裡邊有許多方法,都需要前置和後置操作,應該如何解決?

解決:

【跨模組呼叫】

實例化一個不存在的類,會透過__autoload()自動載入機制。

tp框架的__autoload()在哪裡?在Think.class.php

透過A()方法實例化控制器物件

  A('模組控制器')   例如:A('Goods')

  A('分組/控制器')  ('home/Ucenter');

  A('項目://分組/控制器')  例如:A('shop://home/Ucenter');

    A()方法裡邊有巢狀呼叫import ()方法,此方法幫助我們取得對應的控制器其,並require引入。 A()方法順便直接new 實例化物件

R(“項目://分組/控制器/操作”)方法

  是把控制器的引入、實例化物件、方法的呼叫都給繼承好了。

  R('模組控制器/操作')   例如:A('Goods')

  R('分組/控制器/操作')   例如:A('home/Ucenter/members');🀜( '項目://分組/控制器/操作')  例如:A('shop://home/Ucenter/members');

R()方法裡邊呼叫A()方法

A()方法裡邊調用import()方法

  A()方法使用

  R()方法使用

以上就介紹了Thinkphp入門 二 (46),包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:PHP socket類下一篇:PHP socket類