学习笔记-TP5框架学习笔记(杂项)

3. 数据库

相信跟完那几个SQLi漏洞的代码分析,就已经对TP种数据库操作有些了解了,故略。

4. 模板

4.1 变量输出

// index.php 控制器
use think\Controller;
use think\View;
class Index extends Controller
{
public function index()
{
$view = new View();
$view->name = 'thinkphp';
return $view->fetch();
}
}
# index.html
<html>
Hello,{$name}!
</html>

可以大致理解为:访问index方法,fetch渲染时会把name变量给传到index.html,而模板引擎解析的{$name}实际上就是<?php echo($name);?>

注意模板标签的{和$之间不能有任何的空格,否则标签无效。

输出数组变量的value用{$array.key}

输出对象属性value用{$obj:property}或者${obj->property}

输出其他变量(比如系统变量)以$Think开头,比如`{$Think.cookie.name}`

4.2 使用函数、默认值

{$name|md5|strtoupper|substr=0,3}
# 解释:多个函数之间用“|”分割
编译后即为:
<?php echo (substr(strtoupper(md5($name)),0,3)); ?>
# 还可以简单的写法
{:substr(strtoupper(md5($name)),0,3)}
# 加个默认值
{$user.nickname|default="这家伙很懒,什么也没留下"}

4.3 TP内置标签

内置标签还是全一点把,遇到忘了的直接去开发手册

==PS:这儿有一个简单的MVC代码案例==

5. 日志和错误

6. 杂项

6.1 缓存

image-20220413195111418

image-20220413195111418

支持的缓存类型包括file、memcache、wincache、sqlite、redis和xcache。

驱动方式就是指什么形式存 缓存的数据

如果定义了多个缓存驱动:

// 切换到file操作
Cache::store('file')->set('name','value');
Cache::get('name');
// 切换到redis操作
Cache::store('redis')->set('name','value');
Cache::get('name');

在TP类库里面thinkphp.php这个数据库查询类调用Cache比较多。

Session 、Cookie 和 缓存差不多。

6.2 上传规则

默认情况下,会在上传目录下面生成以当前日期为子目录,以微秒时间的md5编码为文件名的文件。

/upload/20160510/42a79759f284b767dfcb2a0197904287.jpg

而且一般都在public/upload/目录下。

还有可能以32位哈希的前两位当子目录。

上传时可以用$file->rule()自定义文件名生成的规则,如`$file->rule(‘md5’)->move(‘/home/www/upload/’);`

File类的成员函数move()执行成功后文件成功上传,返回一个File类的对象,失败返回false。可以看看File类都有哪些成员,毕竟是文件相关的类,很有用。

File类继承了PHP的SplFileObject类,因此可以调用SplFileObject类所有的属性和方法。SplFileObject手册解释

点击关注,共同学习!
[安全狗的自我修养](https://mp.weixin.qq.com/s/E6Kp0fd7_I3VY5dOGtlD4w)


[github haidragon](https://github.com/haidragon)


https://github.com/haidragon

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C-haidragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值