PHP
文章平均质量分 60
IMJCW
小孩子的心思像星空,看得见却看不懂。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
阿里云DKMS对接记录
背景 因公司安全基线需求,需要对一些落库值进行加密处理。 在之前项目的方案里,是通过 AES256 做了一些自定义处理,对值进行加密,其中密钥和偏移量都是由运维同事维护的。 为了更加安全,公司层面直接使用了阿里云的 KMS 服务。 跟阿里云业务人员沟通之后,最终决定使用企业版KMS:DKMS。 然而,官方只有 Java 版本的 SDK。 SDK实现 传送门 参考了官方 KMS 的 SDK 之后,使用了其一些类库,实现了 PHP 版本的 DKMS SDK。 TIPS:仅实现了 encrypt 和 decryp原创 2022-01-12 15:23:18 · 655 阅读 · 0 评论 -
PHP 限制定时任务进程数量
前言 现在的工作中,经常要写一些脚本做一些异步的操作。 一般是大量的数据修改,或者解决部分并发问题。 为了能够稳定的做好数据处理,一般情况下会用定时脚本的方式。 那么问题来了。 可能存在的问题 当我们处理大量数据的时候,脚本的执行时间可能很长,或者重复处理某条数据(写错的情况下)。 为了避免数据的重复处理、运行脚本过多导致服务器压力过大等问题,我们需要限制脚本的运行数量。 如何做 思路一 查询某种标识的进程数量,如果超过一定数量,则直接退出,不处理。 思路二 记录每次的PID,可以使用 文件、redis、m原创 2021-03-02 16:26:31 · 430 阅读 · 0 评论 -
wkhtmltopdf服务
前言 之前写过一篇 《Lumen生成PDF》 的文章,当时在生成 PDF 的时候,遇到了一些问题,并加以解决了。 前段时间,项目组中的小伙伴发现了一个好项目 wkhtmltopdf/wkhtmltopdf。 可以直接将 HTML 转换成 PDF,这跟我们之前的诉求一致。 Docker版 KnpLabs/snappy 是基于 wkhtmltopdf/wkhtmltopdf 扩展而来的 PHP 项目。 我们通过加工,将其做成一个服务。 环境信息 PHP7.4+ swoole composer supervis原创 2021-02-22 17:38:44 · 1043 阅读 · 0 评论 -
Laravel使用Casts转换类型
本文主要用于记录学习,具体操作建议查看更加详细的官方文档。传送门 本文只记录了其中一部分常用的用法。 文中 demo 来自官方文档。 前言 有时候,数据库里取出的数据,需要我们手动处理相应格式。 比如,某个字段存储的是 json,那么在 orm 取出数据后,手动再 json_encode,处理成我们可识别的样子。 默认的格式类型 官方文档中,明确指出了目前已经定义的类型。传送门 integer real float double decimal:<digits> 例如:decimal:2 .原创 2020-11-23 09:42:19 · 3448 阅读 · 0 评论 -
Laravel/Lumen生成PDF
前言 之前的项目中,涉及一个生成 PDF 的需求,当时使用的框架是 Lumen。 调研 原本是想用官方网站上可以看到的 PDF 扩展的,发现使用之后有水印,直接放弃。(传送门 好像已经不能打开了) 之后考虑了一下,如果能像浏览器一样,将网页直接转换为 PDF,那该多好,省时省力。 搜索了一下,发现还蛮多。 dompdf 传送门 HTML2FPDF 传送门 mpdf 传送门 但适合这个项目的都需要自己再封装一下,为了方便,检索了一下基于 Laravel 的包。 最终选定了 niklasravnsborg/原创 2020-11-04 15:49:14 · 1313 阅读 · 2 评论 -
Laravel config注意点
前言 最近在对接 客服工单系统 时,组里建议新开项目。 经过讨论,最终确定使用 Laravel 来开发。 目前线上环境是用 k8s 进行部署管理的。 同时,每次发版,会拉取最新的代码,然后打包到容器中。 这种情况下,方便了我们使用 Laravel 的一些特性,比如:php artisan config:cache、php artisan route:cache 等。 这样可以减少文件IO,提升系统响应。 问题 有个新问题产生了。 就是有的地方获取不到配置。 原因就是:php artisan config:c原创 2020-11-03 13:25:57 · 597 阅读 · 0 评论 -
499问题查询解决
本文记录了我从遇到 499 问题,到解决的全过程。 如果有小伙伴比较急,需要知道问题可能出现在哪里,请直接看 解决思路 一栏 随着公司的发展,系统也越来越健全。近期使用了阿里云的 sls 服务来分析 nginx 系统日志,并设立了告警功能。 各种平时注意不到的异常情况发生了。 系统环境 经典的 LNMP 什么是 499 解释是:client has closed connection 这很有可能是因为服务器端处理的时间过长,客户端“不耐烦”了。 解决思路 先考虑程序是否有问题,定位某个接口,做详细分析。.原创 2020-10-22 14:02:02 · 1101 阅读 · 0 评论 -
GuzzleHttp Exception cURL error 60: SSL certificate problem: unable to get local
前言 有一位同事在做本地开发的时候遇到了如下报错: GuzzleHttp Exception cURL error 60: SSL certificate problem: unable to get local 开发环境: PHP7.2.1 Win7 phpstudy 终是在上网找到了解决方案,但不知其所以然。 问题所在 GuzzleHttp 在初始化配置时,默认 verify = true。 // FILE: guzzlehttp/guzzle/src/Client.php /** * Conf原创 2020-10-19 14:08:11 · 2969 阅读 · 0 评论 -
Ubuntu安装phpize
前言 最近在看 sphinx,想要在机器上安装一下试试的,尴尬来了。 因为当时为了省事,安装 php 的时候直接使用的是 apt-get 做的,找 phpize 的时候,怎么找都找不到。 还记得在看 sphinx,人家介绍安装的时候说,PHP 必须是要编译安装的,是因为要用到 phpize,事后证明并不是 apt-get 安装的 php 没有 phpize。 我的环境 Ubuntu 14.04 PHP 5.5.9 (apt-get 安装) 当前处于 root 用户 特别说明: 为了减少不需要的扩展,我的原创 2020-10-10 09:51:29 · 1880 阅读 · 0 评论 -
PHP SESSION 自定义会话管理器
前言 在遇到了 SESSION 混乱的问题后,突然对自定义会话管理器有了兴趣,于是便研究实现了一番。 分析 根据PHP官网的说明,实现方式有两种,这里准备用继承类的方式做,同时将 SESSION 存储于 Memcache 中。 实现 首先先要写一个继承于 SessionHandlerInterface 的类。 class MemcachedHanlder implement原创 2018-02-05 14:16:37 · 243 阅读 · 0 评论 -
字符串字符分割和驼峰形式的转换
前言 看到了 Phalcon 的 Model 用法,想在自己的框架里实现,便稍微研究了一番,原理还是蛮简单的。 Phalcon 提供了三种方法 findBy、findFirstBy、countBy,它使用魔术方法 __callStatic 来解析用户调用的方法。 例如:用户调用 findFirstByUserMobile 方法,Phalcon 会将其分割成 findFirstBy 和 Use...原创 2018-02-24 09:00:32 · 1999 阅读 · 0 评论 -
PDO 绑定IN()语句的Array变量
前言 自己琢磨着写了一个小框架使使。写完了之后,开始写 demo 的时候遇到了 PDO 绑定 IN 语句的问题。 问题 原本想要在 prepare 语句中写一个变量,再 bindParam 这个变量,当然这个变量的值是一个数组,PDO 的扩展类会自动处理的。 然而在处理方式上让我止步不前了。 解决 网上有几种解决方案,一个是直接拼凑 SQL 语句,这与我的期望不符。 第二个就...原创 2018-03-13 15:25:23 · 2905 阅读 · 0 评论
分享