【空操作處理】
看下列圖:
實際情況:我們的User控制器沒有hello()這個方法
一個對象去訪問這個類不存在的方法,那麼它會去訪問”魔術方法__call()”
使用者存取一個不存在的操作—》解決:給每個控制器定義個_empty()方法來處理
第二個空操作解決方法:定義一個一個空操作解決方法
【空模組處理】
我們使用一個類,但是現在這個類還沒有被include進來。
我們可以透過自動載入機制處理__autoload(),如果這個自動載入機制也沒有找到這個類,就會報錯。
即是請求一個空模組
解決一:定義一個空的控制器、空模組
解決方法二:
解決方法二:
給裡面,便是放入我們函數庫檔案的地方【模組分組】
1.控制器進行分組設定
控制器進行分組設定
.
3. 配置變數需要分組
4.
做配置config.php4. 做設定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教程有興趣的朋友有所幫助。