ThinkPHP
文章平均质量分 75
主要介绍本人在网站开发过程中,在ThinkPHP框架下的使用经验,包括ThinkPHP3.2、ThinkPHP5+ 版本
moTzxx
你若盛开,清风自来
心若浮沉,浅笑安然
展开
-
ThinkPHP5+七牛云文件操作 方法梳理
近期在项目的优化过程中,注意到对七牛云存储的使用频率提高了同时为了减轻对项目资源服务器的流量压力选择将常用的图片、word 文件转储到七牛云服务器在此根据自己的使用经验,梳理一下核心方法的处理,方便大家的参考使用原创 2022-09-06 19:22:03 · 1371 阅读 · 1 评论 -
ThinkPHP5 按年度水平分表实例
☞ 实现步骤背景近期网站运营人员、产品反馈:查询数据耗时太长,网站交互上出现明显加载缓慢的情况方案针对前面的问题的出现,因此,需要对一些数据表做水平拆分处理常用的方案,按照一定策略(hash、range等),根据我们的业务需求,选用了按年度分表1662372169框架ThinkPHP5、在此,鄙人根据自己的操作经验,以常见的订单表为对象,整理一番,欢迎指摘由于我们一般用主键作为分片键,在不同表中,如果用主键 id 自增的方式,会导致主键重复的问题。所以需要引入全局 id 生成器。原创 2022-09-06 17:02:02 · 2384 阅读 · 2 评论 -
ThinkPHP6 预防XSS攻击的一点小建议
前几天,我们线上项目,出现一些恶意攻击行为;基本就是恶意用户在一些接口开放的参数上,最简单的处理方式,就是过滤处理请求参数。的代码,从而影响网站的正常访问。两边的标签,类似微博过滤效果。这是典型的XSS攻击行为。............原创 2022-07-22 16:32:45 · 759 阅读 · 0 评论 -
ThinkPHP5.1 子查询-使用 Group 获取每组最新数据
背景当前项目业务中,需要以字段 account_id 分组,获取 "redbook_effect" 数据表中最新的数据记录集合 - 根据网上的经验描述,如果 group 和 order 一起使用 - 会先进行分组获取, - 再对得到的结果集进行排序 - 所以如此一来,得到的最终数据中,对应字段 "account_id" 的记录并非是最新的 ---- 解决方案:【使用子查询,先进行排序,再分组】参考文档 【ThinkPHP5 开发文档 —— 子查询】 【where,gr..原创 2021-12-22 16:46:52 · 2832 阅读 · 0 评论 -
ThinkPHP5.1 Hook(钩子)的理解及应用示例
近期在对后台系统的优化过程中, 了解到 `ThinkPHP5` 框架所提供的 `钩子` 行为记录的技巧使用, 感觉在代码规范、AOP (面向切面编程)上都很有值得借鉴的地方, 在此进行整理一番,希望帮到有需要的小伙伴;为类的定义很简单,一般来说只需要定义一个行为入口方法run即可原创 2021-07-27 17:07:48 · 2635 阅读 · 1 评论 -
ThinkPHP6 自定义指令(定时任务脚本 )使用技巧
项目运行过程中,有些任务需要定时去跑,比如定时获取当前关注公众号的用户,给与奖品发放的需求一种解决方式:直接使用 Linux 的 [crontab] 计划任务,设定执行链接就好另一种方式:为了方便对自定义指令的统一管理,可以编写 shell 执行脚本原创 2021-05-19 16:05:15 · 2664 阅读 · 0 评论 -
ThinkPHP6 自定义分页样式 快速配置
背景首先,毕竟是入职新公司不久,不好改动原有的功能;所以,鄙人的想法是指展示自己负责的页面效果,不与原有代码冲突即可如下,相对来说是快速配置的效果,欢迎指摘 …配置步骤①. 页面文件的配置引入 bootstrap 公用静态文件建议可以下载到自己的框架中,以免后期人家服务器停止服务 <link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css"&.原创 2021-05-06 14:46:22 · 1600 阅读 · 0 评论 -
ThinkPHP6 发现一种报错 “控制器不存在:app\controller\Error” 的情况
背景近期在接触 ThinkPHP6 的项目开发,还是不算熟悉运行代码时 出现如下错误截图:梳理过程起初,根据报错信息考虑到 “跨模块调用” 或者 “控制器路径未指定” 的问题但是排查之后发现都是顺畅的最后,代码 Log::info() 打印信息排查发现,是分页获取数据导致的不执行最终问题竟然定位在了 order 排序数组上 (['o.id' => 'desc'])这是因为联表操作后,字段指定不确切导致 sql 语句执行错误,但报错竟然相关性不大解决:注意在操作数据..原创 2021-04-15 10:31:32 · 4984 阅读 · 0 评论 -
ThinkPHP5 redis+session 实现分布式会话共享
背景之前在进行多服务器配置负载均衡时;注意到会出现 Session 会话(一般用于用户登录信息保存)无法使用的情况;而成熟的开发者都是建议使用缓存中间件,如 redis/memcache尤以 Redis+Session 推荐之多此处做一下在 ThinkPHP5 框架下的配置操作…环境ThinkPHP版本: ThinkPHP5.1.40操作系统: Linux/windows10配置前提当然是有可供使用的 Redis 服务器(建议配置为 Redis集群,冗余保证访问正常..原创 2020-12-31 09:41:17 · 1193 阅读 · 1 评论 -
ThinkPHP5.1 框架下 PhpSpreadsheet 操作 Excel 表的导入导出
最近在后台业务需求中又涉及到了 Excel 表的导入导出正要参考以前整理的文章 —— 【ThinkPHP5.1 excel 表的导入导出操作 (PHPExcel)】但是发现,好多道友早就提示了 "PHPExcel" 几年前就不再维护了所以,觉得有必要整理一份 "PhpSpreadsheet " 的使用指导原创 2020-12-16 20:42:10 · 7092 阅读 · 1 评论 -
GatewayWorker 配置 WSS 服务踩坑纪实
对 GatewayWorker 的学习使用过程中,我发现最容易卡壳的就是对WSS服务的配置操作,在此进行文章的整理,注意这是 【ThinkPHP5 集成使用 GatewayWorker 进行即时通信的配置操作】的姊妹篇,对于初次接触 GatewayWorker 的道友们,建议可以关联阅读,谢谢指摘 ...原创 2020-10-26 17:43:54 · 3373 阅读 · 1 评论 -
ThinkPHP5 集成使用 GatewayWorker 进行即时通信的配置操作
最近鄙人想在后台管理系统中添加一个可以跟其他管理员交流的即时通讯的小窗口;同时也是一种学习积累;在资源比较中我认为 GatewayWorker 是很合适的. 框架: ThinkPHP 5.1.2 系统: Windows10、CentOS7.2GatewayWorker 是基于 Workerman开发的一个项目框架,用于快速开发 TCP长连接 应用原创 2020-10-25 11:38:52 · 3002 阅读 · 1 评论 -
ThinkPHP5+mpdf 实现富文本生成 PDF文件
背景 今天在进行后台文章编辑时: 为方便文章的下载,建议在进行富文本的添加、修改时,可在规定目录下对应生成 PDF文件; 网上搜索发现,mPDF 是一个成熟的工具,也避免再造轮子咯 下面将应用于 ThinkPHP5 框架下的过程介绍下,方便道友借鉴操作环境PHP版本: 7.0.12TP框架: ThinkPHP5.1.2mpdf版本: v7.0.1详细介绍及操作,注意参考 :mPDF 官网①. 首先建议下载对应的版本包【mpdf 扩展包链接】以我为例,根据我的.原创 2020-09-03 19:20:17 · 3576 阅读 · 1 评论 -
Yaconf - windows 环境下的高性能配置操作
背景近期在技术涉猎过程中,发现了 “Yaconf” 这一高性能配置扩展管理具体介绍不做赘述,详情推荐阅读:—— 【 Yaconf - 一个高性能的配置管理扩展 (鸟哥) 】因为在日常开发过程熟悉了使用 windows 系统,在此提供一下 win10 环境系的配置操作【环境】 系统: windows10 PHP: php7.0.12 编辑器: phpStorm2017 集成环境:PhpStudy 2016-----------------------------------.原创 2020-08-13 11:14:13 · 449 阅读 · 0 评论 -
PHPStorm 代码在 优快云 文章中显示的相关 js 的“onclick” 代码失效情况!
本人从 PHPStorm 编辑器中复制了源码;然后直接粘贴在 csdn 的 MarkDown 编辑器中(当然是代码块中!);文章保存发表后,发现直接复制博客代码内容粘贴在自己的 PHPStorm 中时;排查问题发现 “onclick” 这个单词中 “o” 会失效;原创 2020-07-13 11:23:42 · 258 阅读 · 0 评论 -
ThinkPHP5框架:Layui 下 image、video、excel 文件的上传实现
背景前段时间因为业务需求,涉及到了多种文件的上传操作;其中,包含 图片、Excel文件、视频文件比如:我需要进行 excel 表格文件的上传,然后读取其中的数据写入数据库那么,至少要限制一下上传文件的类型在此,进行整理一番,欢迎指摘 …环境- 前端框架:Layui 2.5.4- 使用框架:ThinkPHP 5.1.2 - 文件类型:image、excel、video原创 2020-05-22 20:05:26 · 1556 阅读 · 0 评论 -
ThinkPHP5 实现七牛云图片上传功能
背景最近在学习大佬的教程时,遇到七牛云图片上传的操作;发现若是有后期在线网站的开发需求,可以考虑选取;主要是少量的图片存储不收费,可作为学习的小技能;在此做下记录,方便同样需求的小伙伴以作参考,同时也是自己的备忘经验,欢迎指摘 …【七牛云官方网站】本人使用的框架为:ThinkPHP5.0.24其实,可以直接阅读官方文档【PHP SDK 开发文档】,自行对照开发即可,后面的也只是...原创 2020-04-12 15:36:44 · 2104 阅读 · 0 评论 -
ThinkPHP5 集成阿里云滑动验证功能实例指导
最近,项目后台上线后,有人觉得登录页的四位验证码有时候看不出来,需要刷新好几次填对;于是在搜索滑动验证时注意到了阿里云的这个人机验滑动验证(No-Captcha,简称NC),是阿里巴巴集团打破传统验证码技术推出的最新人机识别服务。阿里云的滑动验证采用先进的风险分析引擎来区分来自人类与机器人的访问行为。【人机滑动验证 官方文档】附录:文章 PHP结合阿里云实现网站滑块验证码的具体实例...原创 2020-04-02 16:22:59 · 1571 阅读 · 0 评论 -
ThinkPHP5 集成使用 Layui 穿梭框(transfer)控件
最近在做后台业务处理时,接触到了 Layui 中的一个穿梭框 transfer 控件的使用;个人觉得效果还是挺满意的;但是毕竟是在 ThinkPHP5 框架下进行的集成,不能不适合部分同行理解哦不过,还是在此进行整理一番,欢迎指摘 …框架: ThinkPHP5.1.2系统: Nginx/centOS浏览器:Google原创 2020-03-31 18:13:34 · 1297 阅读 · 0 评论 -
ThinkPHP5.1 Linux下命名空间问题
背景今天后台审核人员反馈用户积分没到位一想,肯定出Bug了然后,各种测试,追踪最后,发现是命名空间的神奇问题 …环境本地测试:whin10 + phpStudy2017线上环境:CentOS7.2 + Nginx具体表现 首先,在本地测试过程中,是一点问题都没有的 但是在线上就会报错:找不到类 ·xxx· 推测一般就是 Linux环境下: 类的命名大小...原创 2019-12-31 11:41:48 · 496 阅读 · 0 评论 -
ThinkPHP5 (mySQL) group 统计各价格区间内数据
背景今天在进行后台数据监控操作时需要获取时间段内不同价格区间的商品订单量而商品价格各个数值的都有,选用使用 FLOOR()、GROUP 处理在此,整理一下,还请指教…PHP 实现源码: Db::name('xorder_goods og') ->field("FLOOR(og.order_amount/100) price,...原创 2019-12-03 17:36:31 · 1465 阅读 · 0 评论 -
ThinkPHP5.1 本地测试没问题,线上Linux系统运行提示:" 致命错误: Class 'app\api\Controller\BirdExpress' not found"
首先,本地测试使用的是 phpStudy2016,代码运行正常线上测试环境使用的是 CentOS7.2 的 Linux环境,以往经验知道经常出现 大小写敏感识别的问题试着把类名 BirdExpress 更改为Birdexpress,失败!试着参考 Controller 类继承 Base 类,依然失败!参考其他类的使用方法,将命名空间统一为小写模式...原创 2019-06-10 11:33:39 · 4660 阅读 · 0 评论 -
PHP 支付宝退款操作+注意事项 (2019-06-06)
♨ 背景这两天在做 APP下的支付宝支付功能,涉及到其 退款操作 功能,所以在应用申请的等待时间里就已经做了代码的编写 ,在此记录一下几个注意的事项,希望能帮到各位道友多少提一下:毕竟我的前提操作是 App支付快速接入,虽然理论上不会影响.开发环境 ThinkPHP 框架: ThinkPHP5.1.2; PHP 版本:php-5.6.32原创 2019-06-06 18:37:40 · 3700 阅读 · 2 评论 -
ThinkPHP5.1 图片上传修改反斜线替换为斜线
问题描述最近进行 Thinkphp5.1 框架的后台设计时,发现使用默认的图片上传功能,保存的图片路径中有一个反斜线"\"在浏览器中打开(windows下),图片访问自然是正常的但是,在 app 获取路径显示时,是无法识别这种反斜线"\"的解决方案在使用默认的上传方法时,注意字符串替换即可//把反斜杠(\)替换成斜杠(/) 因为在windows下上传路是反斜杠径$getSav...原创 2019-03-15 16:02:04 · 3149 阅读 · 2 评论 -
ThinkPHP5.1 配置Nginx/Apache下的 URL重写
今天将线下好不容易写完的 ThinkPHP 项目代码搬到线上服务器,然后出现各种坑① 首先出现的情况是,PHP 版本安装太低导致无法解析,需要 5.6② 当版本满足后,经过一番配置又发现不支持 URL 重写 (形如http://seasonpro.com/article/7.html)③ 分析后发现,本测试用的是Apache服务,线上 CentOS7.1 系统选...原创 2018-11-13 19:04:36 · 9682 阅读 · 0 评论 -
ThinkCMF 初次见面/折腾一下
之前在公司开发的项目,一直使用的都是ThinkPHP3.2框架然而,我们的前后台所有的页面、导航、管理、配置等都是自己设计制作的,所以一定存在着很多设计的不合理性,感觉难看还不好用所以,在没有编写使用文档的情况下,后面接手的新员工总是一步步的摸索其实一直想找一个满意的后台管理框架,于是有人推荐了ThinkCMF,主要是看官方网站拥完善的文档以及大批的代码支持者,所以,摸索一番,...原创 2018-07-18 16:00:19 · 2999 阅读 · 0 评论 -
ThinkPHP5 对html页面中的url传参操作
◆ 背景毕竟PHP开发的框架多数都会和前端页面嵌套使用,而不同的框架升级多少都会有所变化,这毕竟是其中的一个知识点吧,在我找不到方法前,考虑的是隐藏域提交“ID”,然后后台post处理取出此ID,再依次为依据进行后续操作… 框架:ThinkPHP5.1路由配置举例:【有参数的一种】Route::any('cms/article/edit/:id','cms/artic原创 2018-01-25 18:01:59 · 22328 阅读 · 0 评论 -
ThinkPHP 5.0/5.1 自定义404界面的配置
★ 背景还要啥背景,就是觉得不可能用框架自带的 404 界面呗.可能跟之前的版本配置方法有点区别,在此做一下简单的笔记 框架:ThinkPHP 5.1 ★ 配置过程♩. 修改 config.app 文件第一,需要关闭调试模式// 应用调试模式'app_debug' =&gt; false, 一般在项目的开原创 2018-01-18 20:11:55 · 14871 阅读 · 4 评论 -
ThinkPHP5.1+ 验证码功能实现
背景ThinkPHP5.0 已经很久了,最近有所接触,下面介绍一下常用的第三方验证码功能的使用。功能开发1).引入第三方扩展包进行 TP5 的开发,Composer 的使用会成为重要技能 以windows为例子,输入命令:composer require topthink/think-captcha完成上述操作,会在以下目录中出现 captcha 的扩展包..\vendor\topthink\th原创 2017-08-18 11:09:53 · 26161 阅读 · 7 评论 -
ThinkPHP5 整合微信扫码支付
摘要为了便于微信开发,此处在ThinkPHP5.0 框架下整合了微信扫码支付的功能,测试需要外网项目部署.对于TP3的集成,可参考之前写的文章 ThinkPHP 框架下微信支付功能开发微信支付SDK整理移植一般会进行原生开发,那么就可以直接下载开发文档中的PHP-SDK,此处的代码进行了整理。需要将 ..\application\extend 目录下的 wxpay 对应移植到自己的项目目录原创 2017-08-21 18:07:32 · 3419 阅读 · 0 评论 -
ThinkPHP 框架下 BaseModel 类整理
<?phpnamespace Common\Model;use Think\Model;/** * User: moTzxx * 建议:1.对于TinkPHP 框架,model统一放在/Application/Common/Model/目录下 * 2.所有的模型都继承BaseModel * 3.如果没有特殊需求,可直接调用addData、editData、dele原创 2016-12-05 17:40:47 · 2455 阅读 · 0 评论 -
微信公众平台开发[6] —— 微信开发集成类的使用
背景:这几天又在接触微信PHP方面的开发,认为之前写的文章确实有些乱,刚好发现了一个不错的集成类(看原始代码,出自“云知梦军哥”,不算打广告,只是尊重别人的开发成果,谢谢),里面涉及了非常全面的函数,在此针对我自己的实际使用过程简单的描述一下,希望能给同道小白们一个诚恳的引导。 前期准备:(1).微信公众平台的配置,这里不赘述,具体的可以参考我前面所写的1、2章,个人认为还是比较全面的原创 2017-05-04 18:30:55 · 5351 阅读 · 2 评论 -
ThinkPHP 框架下支付宝支付
背景近期项目需要接入支付宝支付功能,其中开发使用了ThinkPHP3.2.3框架,通过参考开发平台文档可以知道,网站开发有两种场景,一种是手机网站支付,直接唤醒支付宝app进入支付操作;另一种多是PC端显示支付二维码的形式,然后使用手机的支付宝app扫描。 此处主要介绍手机网站支付的实现,后期补充扫码支付。原创 2017-07-07 18:42:05 · 1552 阅读 · 2 评论 -
ThinkPHP5.0 build 自动生成模块
提示:首先,下载的完整框架或者 Composer 运行创建命令生成的框架中,build.php 文件默认存放于根目录下。需要复制 build.php 文件到 application 目录,并对该文件进行修改,举例如下:return [ // 生成应用公共文件 '__file__' => ['common.php', 'config.php', 'database.php'],原创 2017-08-21 11:36:33 · 8769 阅读 · 2 评论 -
moTzxx-CMS —— [一个基于PHP代码的后台管理系统(ThinkPHP5.1.40)]
近期使用 LayUI 的过程中,越发觉得对方的设计理念符合我的审美,主要是后台开发者使用简单;而另一方面,想到作为一名 PHPer 却一直没有一套属于自己的后台管理系统,所以决定花费一些时间,在借鉴官方文档和其他开发者设计思路的前提下,打造一个属于自己的后台管理系统......原创 2018-02-12 17:18:47 · 31185 阅读 · 69 评论 -
微信公众平台开发[4] —— ThinkPHP 框架下微信支付
声明:原文摘自 白俊遥博客 部分内容稍作修改,主要用于个人的事例参考 公众号支付是指在微信app中访问的页面通过js直接调起微信支付;因此页面必须是在微信中打开的;示例项目:https://github.com/baijunyao/thinkphp-bjyadmin一:设置域名登录微信公众平台;微信支付中设置支付授权目录;把域名改为自己的;注原创 2016-11-28 19:41:06 · 4368 阅读 · 6 评论 -
ThinkPHP FTP图片上传
背景:图片上传功能应该是个极为普遍的,在此参考了ThinkPHP 框架中的集成方法整理了一下FTP图片的上传功能,这样方便在后台操作时,把有关的图片直接上传到线上的图片服务器,避免大流量访问的图片加载缓慢,降低网站的访问压力,不合理之处,敬请指摘...操作:1.前端设计这里主要为了测试功能的实现,使用最简单的设计,既方便参考又有利于后期的功能扩展。如下附 upload...原创 2017-05-12 18:02:50 · 3488 阅读 · 0 评论 -
后台 配置页面功能设计
每个网站开发中,多多少少会需要一些默认的配置项,相对而言一条条的手动添加是极为繁琐的,要分类各种图片、文字、文件、单选、多选按钮等,在此提供一种设计思路,记不清从哪里参考而来的,个人认为比较方便,也有很大的扩展性...原创 2017-05-19 12:18:22 · 13313 阅读 · 0 评论 -
微信公众平台开发[4] —— ThinkPHP 框架下微信支付
原文主要摘自 白俊遥博客 ,部分内容针对个人事例已作修改,主要用于自己的参考,欢迎指正。注意:微信公众号支付,强烈建议使用外网可访问的链接测试,否则即便代码正确也无法调出支付界面,可使用草料二维码生成可扫描图片,也可直接在微信中输入网址。使用框架:ThinkPHP 3.2.3 一.微信公众平台信息配置1).进入微信公众平台由左侧的“...原创 2017-09-16 22:06:51 · 1784 阅读 · 0 评论 -
踩坑筆記 —— ThinkPHP 框架下微信支付
此文主要为个人解决 ThinkPHP3.2.3 下微信支付所遇到的一些坑的解决方案,仅供参考 详情请参考 原文 : 微信公众平台开发[4] —— ThinkPHP 框架下微信支付。原创 2017-12-09 10:55:29 · 1096 阅读 · 0 评论