-
隐藏入口文件
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>";
}
查看全部
举报