控制器定義

我們來了解一下控制器定義,包括風格、是否需要繼承以及各式各樣的輸出方式

一.控制器定義

1.控制器,即 controller,控制器文件存放在 controller 目錄下;
2.類名和文件名大小寫保持一致,並採用駝峯式(首字母大寫);use think\Controller;class Index extends Controller
3.繼承控制器基類,可以更方便使用功能,但不是必須的;
4.系統也提供了其它方式,在不繼承的情況下完成相同功能;
5.前面我們知道如果是一個單詞,首字母大寫,比如 class Index;
6.URL 訪問時直接 public/index 即可;
7.那麼如果創建的是雙字母組合,比如 class HelloWorld;
8.URL 訪問時必須爲:public/hello_world;
9.如果你想原樣的方式訪問 URL,則需要關閉配置文件中自動轉換;'url_convert'=> false,
10.此時,URL 訪問可以爲:public/HelloWorld;
11.如果你想改變根命名空間 app 爲其它,可以在根目錄下創建.env 文件   項目的根目錄下;
12.然後寫上配對的鍵值對即可,app_namespace=application;
 

二.渲染輸出

1.ThinkPHP 直接採用方法內 return 返回的方式直接就輸出了;
2.使用 json 輸出,直接採用 json 函數;$data = array('a'=>1, 'b'=>2, 'c'=>3);return json($data);
3.使用 view 輸出模版,開啓錯誤提示,可知道如何創建模版;return view();view默認情況下調用 view下的同名控制器和同名方法.html   
可以指定路徑return view('show');默認會找app/index/view/index/upload.html;
4.默認輸出方式爲 html 格式輸出,如果返回的是數組,則會報錯;
5.可以更改配置文件裏的默認輸出類型'defualt_return_type =>"json"'
,更改爲 json;return ['user'=>'Lee','age'=>100];'default_return_type'=> 'json',
6.一般來說,正常頁面都是 html 輸出,用於模版,AJAX 默認爲 json;
7.如果繼承了基類控制器,那麼可以定義控制器初始化方法:initialize();
8.initialize()方法會在調用控制器方法之前執行;
protected function initialize()
{
//parent::initialize();
echo 'init';
}
9.initialize()方法不需要任何返回值,輸出用 PHP 方式,return 無效;
 
 
 
 
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章