-
隱藏入口文件
apache配置rewrite_module打開,AllowOverride 設置為All;
入口文件同級編寫.htaccess 重寫規則
查看全部 -
動態配置
在控制器或某個方法進行的配置
使用
set
方法動態設置參數,例如:Config::set('配置參數','配置值');//?或者使用助手函數config('配置參數','配置值');
也可以批量設置,例如:
Config::set([ ????'配置參數1'=>'配置值', ????'配置參數2'=>'配置值']);//?或者使用助手函數config([ ????'配置參數1'=>'配置值', ????'配置參數2'=>'配置值']);
?寫在構造函數時,當前控制器生效;
寫在方法時,當前方法生效;
查看全部 -
開發規范
命名規范
ThinkPHP5
遵循PSR-2
命名規范和PSR-4
自動加載規范,并且注意如下規范:目錄和文件
目錄使用小寫+下劃線;
類庫、函數文件統一以
.php
為后綴;類的文件名均以命名空間定義,并且命名空間的路徑和類庫文件所在路徑一致;
類文件采用駝峰法命名(首字母大寫),其它文件采用小寫+下劃線命名;
類名和類文件名保持一致,統一采用駝峰法命名(首字母大寫);
函數和類、屬性命名
類的命名采用駝峰法(首字母大寫),例如?
User
、UserType
,默認不需要添加后綴,例如UserController
應該直接命名為User
;函數的命名使用小寫字母和下劃線(小寫字母開頭)的方式,例如?
get_client_ip
;方法的命名使用駝峰法(首字母小寫),例如?
getUserName
;屬性的命名使用駝峰法(首字母小寫),例如?
tableName
、instance
;以雙下劃線“__”打頭的函數或方法作為魔術方法,例如?
__call
?和?__autoload
;
常量和配置
常量以大寫字母和下劃線命名,例如?
APP_PATH
和?THINK_PATH
;配置參數以小寫字母和下劃線命名,例如?
url_route_on
?和url_convert
;
數據表和字段
數據表和字段采用小寫加下劃線方式命名,并注意字段名不要以下劃線開頭,例如?
think_user
?表和?user_name
字段,不建議使用駝峰和中文作為數據表字段命名。
應用類庫命名空間規范
應用類庫的根命名空間統一為app(不建議更改,可以設置
app_namespace
配置參數更改,V5.0.8
版本開始使用APP_NAMESPACE
常量定義);
例如:app\index\controller\Index
和app\index\model\User
。查看全部 -
TP5開發環境要求:
查看全部 -
MVC流程圖(Model View Controller),業務邏輯、數據、視圖分離。
MVC較之傳統開發模式,耦合性低、重用性高、可維護性高
查看全部 -
TP3、TP5不兼容
查看全部 -
PHP request 方便好用
查看全部 -
use think/config; think/config:get() ;查看全部
-
模塊配置這節課比較關鍵,需要多學習幾次,自己上手寫。查看全部
-
模塊配置:應用于不同場景(家/公司/其他場合)的配置
查看全部 -
直接從09:35這里開始看
查看全部 -
trim 過濾空格
查看全部 -
public?function?edit(Request?$request) { ????// ????//$id?=?input('id',null,'intval'); ????$id?=?$request->get('id',?null,?'intval'); ????halt($id); ????return?$this->fetch(); }
查看全部 -
5-7 條件判斷標簽
<!-- switch -->
{switch name="'Think.get.level"}
{case value="1|2"}<p>銅牌會員</p>{/case}? 多個參數可以 用|分割
{case value="3"}<p>黃金會員</p>{/case}
{case value="4"}<p>鉆石會員</p>{/case}
{default /} <p>游客</p>
{/switch}
<!-- range -->
value="1,2,3" type="in" ->? ? ? 是否其中一個
value="1,2,3" type="notin" ->? ?是否不是其中一個
value="1,3" type="between" ->? ?是否1-3之間只能2個參數
value="1,3" type="notbetween" ->是否不是1-3之間只能2個參數
{range name="Think.get.level" value="1,2,3" type="in"}
<p>當前level是1, 2, 3中的一個</p>
{else/}
<p>當前level不是1, 2, 3中的任何一個</p>
{/range}
in notin between notbetween均有獨立標簽
{in name="Think.get.level" value="1,2,3"}
{else/}
{/in}
<!-- defined -->
判斷變量/常量名是否被定義
{defined name="變量/常量名"}
{else/}
{/defined}
<!-- if -->
不推薦使用
()為一個條件 可用 and or?
{if condition="($a == 1) and ($b == 1)"}
{else/}
{/if}
查看全部 -
模板循環標簽:
{volist? name=""? id="" key="" ? offset=""? length=""? mod=""? empty="" }
{/volist}
{volist? name="數組名"? id="數組的別名" key="默認為i,代表當前循環的次數" ? offset="從索引的幾開始往后輸出"? length="當前所要輸出的長度"? mod="循環的次數和mod取余"? empty="不能直接使用html標簽,但是可以使用變量,當數組為空時顯示的文本內容" }
{foreach? $list? as? $vo} 或者 ?{foreach? name="list"? item="vo"}
{/foreach}
{for? start="1"? end="10"? step="2"? name="k"}
????<p>{$k}</p>
{/for}
相當于:
<!--
for($k=1; $k<10; $i+=2){
????echo "<p>{$k}</p>";
}
查看全部
舉報