后端
文章平均质量分 84
贪玩的木木
这个作者很懒,什么都没留下…
展开
-
TP6 + think-swoole 实践(二)
swoole 在 TP 中的用法大概可以归为三类:listen(监听)、subscribe(订阅)、task(任务)。先说一下 listen 和 subscribe,这两种也是各种教程上出现最频繁的。这三类用法,本质上都是使用 TP6 的“事件”实现的。简单的来说,就是我们先定义一些事件,然后注册listen监听或者subscribe订阅事件(在event.php中),之后就可以通过内部调用来触发事件了。// 触发UserLogin事件Event::trigger('UserLogin');// 或原创 2021-12-06 11:52:46 · 2193 阅读 · 0 评论 -
TP6 + think-swoole 实践(一)
最近有一个主动向前端发送消息的需求,自然就想到了用 WebSocket 解决,但是没想到 TP6 + think-swoole 的资料这么少,连全面的官方文档也找不到,再加上 Swoole 的官方文档对初学者十分不友好,无奈之下自己摸索了好久,花费了两个半天时间,这里稍微记录一下。参考文档:think-swoole:https://www.kancloud.cn/book_xwy/think-swoole3/1720752简单使用:https://github.com/xavieryang007/th原创 2021-12-05 20:23:10 · 4336 阅读 · 0 评论 -
探索TP6验证场景的only、remove、append规则
废话忍不住先吐槽一下,且不说TP的功能怎么样,文档写得是真的潦草,很多复杂的情况都没有举例说明。奈何网上的资料又很少,每次只能一点点去啃源码,难受的呀,常常想换个框架或者换个语言得了,但又以没时间为由懒得行动,真是自作自受呢 ≧ ﹏ ≦。最近在工作的时候用到TP6验证器的场景里的 only、remove、append 三个方法,没想到用起来好多小问题,非常不顺手,无奈只能一个个去找具体的隐藏规则了。正文先附上源码路径:\vendor\topthink\framwork\src\think\Valid原创 2021-11-21 23:14:22 · 1893 阅读 · 2 评论 -
对TP5数据库缓存cache的一些思考
最近在优化代码的时候,突然想起来TP5的数据库操作中有个cache,之前也用过,印象里就是在缓存时间内,请求的速度会大大加快,但是修改数据会导致不能及时更新。当初还比较年轻,没有深入去搞清楚,只是不再使用cache了而已,现在刚好有机会,就来稍微学一学吧。很可惜,不论是官方文档还是网上搜索出来的结果,基本上都只是告诉我们如何去使用它,完全没有说到它的工作原理之类的,无奈,只能去慢慢读源码了。首先让我感到疑惑的是,这个cache和我们平常用的缓存Cache有什么区别?如果单单从功能上.原创 2021-03-16 21:29:40 · 3629 阅读 · 0 评论 -
Clean Code PHP:PHP代码简洁之道
最近在 GitHub 上看到了一篇很不错的文章,是关于代码编写风格和规范的,看了之后感觉收获颇丰,在这里根据我自己的理解和习惯增删改一下,以后方便拿来复习。文末有原文链接。1、变量、方法等,名字要取得一眼就能够看出大概意思,代码可读性高一点。//什么神仙能看得出这是当前时间的意思$dqsj = date('Y-m-d h:i:s',time());$currentTime = date('Y-m-d h:i:s',time());2、尽量不要用无意义的变量名,增加代码可读性。.原创 2021-03-04 10:51:02 · 208 阅读 · 4 评论 -
PHP 实现请求结束之后,后台静默执行部分代码
这一篇其实是由上一篇引申出来的。之前说到,勉勉强强实现了 PDF 和 PPT 文件转图片,但是转换需要一定的时间,而我这里是用户发起请求进行转换的,这部分时间不应该让用户一直等着,应该结束请求,把数据返回给用户,然后后台再慢慢执行这些转换操作。最开始我是有两种想法的,第一种是比较传统的,做一个进度条给用户看,虽然一个文件稍微要几秒钟的等待时间,但是有了进度条之后也勉强能够接受;第二种就是我现在在实现的办法,即结束请求,把数据返回给前端,然后后台再默默地进行转换操作。这里我综合考虑了一下,选择了.原创 2020-12-23 22:15:41 · 518 阅读 · 0 评论 -
PHP利用ImageMagick实现PDF、PPT转图片
最近应业务需要,需要实现在线浏览 PPT、PDF 的功能。搜了一阵,看似好用的微软 Office Web Viewer 却有着速度极慢、限制10M大小等麻烦,前端直接使用 pdf.js 也遇到了跨域之类的问题,索性一不做二不休,把 PPT 和 PDF 都转换成图片,再分页传回给前端。去网上搜了一圈,看到了 imagick 这个扩展库,看了操作好像也是十分地简单,没想到真的动手做起来遇到了不少的麻烦。首先是网上的版本,即用 PHP 的扩展库 imagick 来实现。第一步是要安装,我用的是.原创 2020-12-20 22:26:28 · 1258 阅读 · 0 评论 -
TP3.2 add方法返回值一直为1
今天在敲代码的过程中,偶然发现原本返回值为主键 id 的 add 方法,现在插入数据是成功的,但是现在莫名其妙返回值都变成1了。看了一下我的代码好像没啥问题,那就直接看看源码吧。打开\ThinkPHP\Library\Think\Model.class.php,查找public function add(,找到 add 方法。调试了几波后发现,问题出在了 324 行,当我的主键为复合主键的时候(尽管自增主键只有一个),直接就返回给我 insert 的结果了,再去看看 insert .原创 2020-07-31 22:35:45 · 756 阅读 · 0 评论 -
HTTP响应头
HTTP响应头向客户端提供一些额外信息,比如谁在发送响应、响应者的功能,甚至与响应相关的一些特殊指令。这些头部有助于客户端处理响应,并在将来发起更好的请求。对响应头的操作是后端开发者的任务。最基本且最常使用的就是允许跨域的头了。Access-Control-Allow-Origin:配置有权限访问资源的域,* 表示允许所有域,常用的方式还有配置白名单,只允许个别域访问。别的基本上都是按需自己加,也不经常用得到。以下是所有的响应头,取自https://websec.readthedocs..原创 2020-07-29 18:24:39 · 729 阅读 · 0 评论 -
PHP后端(二):连接数据库
数据库是应用开发所必不可少的模块之一,使用数据库的好处和必要性不用我说了,什么数据共享啦、集中控制啦、维护性啦等等等等,可以说是好处多多。而所有与数据有关的操作,基本上都是后端的范畴,所以掌握好对数据库的操作,是后端的必修课之一。数据库的内容很庞大,真的要学起来还挺复杂的,我懂得也不多,就先挑简单的来吧,以后有机会的话再去学习、记录。我们最常见的数据库是关系型数据库,如MySQL、Oracle等等,关系型数据库的特点是根据关系模型来组织数据,一列代表一个属性字段,一行代表一条数据,通过行和列组成表,.原创 2020-07-17 21:57:27 · 2043 阅读 · 0 评论 -
PHP后端入门(一):实现前后端交互
PHP是现如今十分流行的轻量级语言,经常用来做应用的后端开发,其特点是语法简单,十分容易上手。除了单独做后端,PHP还能够将程序嵌入到HTML文件中执行,非常容易实现简单的前后端交互。而且PHP的运行很轻松,只要下载PHP环境并打开服务,就能通过访问文件的形式执行PHP文件,并且获得其返回的数据了。但是可惜由于很多原因,PHP不太适合复杂和安全性要求高的大应用,所以求职方面,可能不如Java后端等吃香。但是如果你只是需要为自己的应用写个简单的后台,或者是像我一样在学校里做做项目,参加参加比赛,那么PHP还.原创 2020-07-17 19:04:51 · 8712 阅读 · 0 评论