thinkphp6学习

composer 安装

composer create-project topthink/think tp

多应用

composer require topthink/think-multi-app

隐藏index.php的.htaccess,文档缺少一个问号

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

view.php的一些配置
在这里插入图片描述

/**
     * 模板配置参数
     * @var array
     */
    protected $config = [
        'view_path'          => '', // 模板路径
        'view_suffix'        => 'html', // 默认模板文件后缀
        'view_depr'          => DIRECTORY_SEPARATOR,
        'cache_path'         => '',
        'cache_suffix'       => 'php', // 默认模板缓存后缀
        'tpl_deny_func_list' => 'echo,exit', // 模板引擎禁用函数
        'tpl_deny_php'       => false, // 默认模板引擎是否禁用PHP原生代码
        'tpl_begin'          => '{', // 模板引擎普通标签开始标记
        'tpl_end'            => '}', // 模板引擎普通标签结束标记
        'strip_space'        => false, // 是否去除模板文件里面的html空格与换行
        'tpl_cache'          => true, // 是否开启模板编译缓存,设为false则每次都会重新编译
        'compile_type'       => 'file', // 模板编译类型
        'cache_prefix'       => '', // 模板缓存前缀标识,可以动态改变
        'cache_time'         => 0, // 模板缓存有效期 0 为永久,(以数字为值,单位:秒)
        'layout_on'          => false, // 布局模板开关
        'layout_name'        => 'layout', // 布局模板入口文件
        'layout_item'        => '{__CONTENT__}', // 布局模板的内容替换标识
        'taglib_begin'       => '{', // 标签库标签开始标记
        'taglib_end'         => '}', // 标签库标签结束标记
        'taglib_load'        => true, // 是否使用内置标签库之外的其它标签库,默认自动检测
        'taglib_build_in'    => 'cx', // 内置标签库名称(标签使用不必指定标签库名称),以逗号分隔 注意解析顺序
        'taglib_pre_load'    => '', // 需要额外加载的标签库(须指定标签库名称),多个以逗号分隔
        'display_cache'      => false, // 模板渲染缓存
        'cache_id'           => '', // 模板缓存ID
        'tpl_replace_string' => [], //模板字符串替换
        'tpl_var_identify'   => 'array', // .语法变量识别,array|object|'', 为空时自动识别
        'default_filter'     => 'htmlentities', // 默认过滤方法 用于普通标签输出
    ];

中间件
https://www.kancloud.cn/manual/thinkphp6_0/1037493

验证器

try {
	validate(Staff::class)->extend('check')->check($data);
} catch (ValidateException $e) {
	// 验证失败 输出错误信息
	return json(['code' => 1, 'msg' =>  $e -> getError()]);
}

门面,phpstrom提示和无法跳转到对应的方法,加上注释

/**
 * Class Ajax
 * @see \app\common\Ajax
 * @package app\facade
 * @mixin \app\common\Ajax
 */

url助手函数,无法返回字符串,

在这里插入图片描述
url(’/’)->__toString()或者url(’/’)->build()都可以生成url字符串

获取当前的操作名,request方法
在这里插入图片描述

$this->request->action()

json方法->getContent()获取内容
在这里插入图片描述
重定向不跳转,使用send

redirect(url('/'))->send();

使用Spreadsheet导出excel时候在 $writer->save(‘php://output’)后面加上exit();否则导出会需要修复

模型save();

/**
 * 使用表达式设置数据
 * @access public
 * @param string $value 表达式
 * @return Raw
 */
public function raw(string $value): Raw
{
    return new Raw($value);
}

'score' => Db::raw('score+1');

异常处理返回

return Response::create(View::fetch('public/error'));

富文本显示

{$str|raw}

批量新增获取id

$model->saveAll($data)->column('id');

workman记录
照着手册即可
开启wss,使用的为Apache反向代理,先配置https, 再加入下面代码, 如果是线上127.0.0.1改为IP地址,ProxyPass 和ProxyPassReverse 为设定的反向代理的对应url,可修改

SSLProxyEngine on
ProxyRequests Off
ProxyPass /wss ws://127.0.0.1:2346
ProxyPassReverse /wss ws://127.0.0.1:2346

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on

js访问,要加上域名

 //开启wss
let wss = new WebSocket('wss://域名/wss');

 wss.onopen = function() {
   
 };
 wss.onmessage = function(e) {
    
 };

workerman中的访问为

protected $socket = 'websocket://0.0.0.0:2346';

关于中间件,控制器引入中间件会加载request,但是在middleware.php中引入的中间件会在request加载之前;会导致做鉴权auth的时候获取不到相应的控制器和方法

将redis设置为session,手册都有,基本配置

// redis缓存
        'redis'   =>  [
            // 驱动方式
            'type'   => 'redis',
            // 服务器地址
            'host'       => '127.0.0.1',
            'port'     => '6379',
            'password' => '123456',
            'select'   => '0',
            // 全局缓存有效期(0为永久有效)
            'expire'   => 0,
            // 缓存前缀
            'prefix'   => '',
            'timeout'  => 0,
        ],

多个域名绑定可以直接写上域名的完整信息

跨域,引入AllowCrossDomain中间件

AllowCrossDomain::class

配置文件的顺序会导致一些问题,当在自己的配置文件使用url方法时候,如果在route.php前面会导致route配置无效而使用默认配置

事件event有返回值时,会默认返回数组

引入模板文件需要后缀和地址

View::fetch('../view/public/page/edit.html')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值