一:模組設計
預設採用單模組,支援單模組,所有模組用app作為根命名空間
可以建立common模組,但是不能直接存取,可以在其它模組中存取,提高安全性
common 類別可以被任意繼承
二:tp5的設定
1 慣例配置
#定義配置目錄
在入口檔案中
define('CONF_PATH',__DIR__.'/../conf/');
2 應用設定
在上節目錄中新建config.PHP
return array();
陣列裡面是組態項目
3 擴充配置
把不同的設定檔拆分成不能的設定檔,方便管理,在config目錄中新建擴充設定資料夾extra
然後直接新建設定檔
例如qiniu.php
設定格式與上相同
tp5 允許將database配置直接放在config資料夾下(與config.php同一層級)
4 場景設定
在比同場景使用的不同設定
在config.php中設定app_status,然後在extra中建立對應環境的設定
#5 模組設定
在config資料夾下建立和模組名稱相同的資料夾,然後新建config.php檔
模組配置的目錄和config目錄一致,可新建extra擴充配置,擴充配置只在對應模組下有作用
6 動態設定
a. 在控制器中的__construct 建構函式中使用助手函式config的組態項目可以在控制器中生效
b. 在方法中使用助手函式新建的組態項目只在改變方法中生效
7 config類別的使用
動態改變config配置,可以使用助手函數config()和使用config類別
config('key','value', '作用域')
判斷key是否存在
config('?key');
8 環境變數設定與使用
三:路由
1 入口檔案
public/index.php 單一入口
2 隱藏入口檔案
#既是隱藏index.php
a開啟apache的rewrite模組,allowed all
b .htaccess 設定在public目錄下存在,不需要自己設定
2 入口檔綁定
綁定模組名稱,縮短uri
例如要綁定後台模組
在admin.php中定義 difine('BIND_MODULE','admin'); 綁定後台模組
difine(' BIND_MODULE','admin/Index');綁定後台的Index控制器
#在設定檔中設定 'auto_bind_module'=>true 則可以不用再定義 difine('BIND_MODULE','admin') ;
3 路由
先開啟路由(預設已開啟) 在設定檔中設定 'url_route_on'=>true,
'url_route_must'=>false (為true則必須設定路由才能存取)
在設定檔中新建路由檔route.php
#直接寫入路由規則
例如return array(
#'news/:id'=>'index/Index/news',
);
四: 請求
##1 request 請求 a 助手函數request()b Thinkphp 的request類別c 物件注入,把物件注入到方法中2 請求物件request#a取得瀏覽器中的連結取得網域$request->domain()#取得pathinfo $request->pathinfo()取得path路徑$request- >path()b 請求類型目前請求的類型 $request->method();#判斷是否為get請求 $request->isGetquest->isGet ()判斷是否為ajax請求 $request->isAjax()---判斷是否為手機 $request->isMobile();c請求的參數取得?後的參數 $request->get()
$request->controller();
$request->action();##3 input助手函數
相當於tp3.2中的I函數
input('post.name')
input('get.name')
input('cookie.name)
input('session.name)
...
可以取得request中的各種參數
4 回應物件
config('default_return_type','json');透過動態修改傳回參數類型來進行return操作
更適用於api的封裝
#type類型支援json,xml,html(預設)
例如:
config('default_return_type','json');
$res = ['code'=>200, 'data'=>[1,2,3,4,5,6,7,8,9]
];
資料
五視圖
#直接顯示
return view();預設為app/分組名稱/view/控制器名稱/方法名稱.html
#傳遞第一個參數
return view('name') 默認傳送第一個參數為 app/分組名稱/view/控制器名稱/name.html
#return view('name1/name2') 預設 app/分組名稱/view/ name1/name2.html
return view('./index.html') 預設為index.php入口檔案同級目錄下的index,.html檔案
傳送值給範本
第二個參數為陣列形式
return view('name',['key'=>'value'])
以上是thinkphp5入門該了解的知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!