PHP
高山丿流水
作为一个程序员,加油了
展开
-
PHP OPcache 包文件不被导入问题
背景项目重构后, 新项目使用更新的laravel框架,和老版本对比 单服务器 QPS 降低了4 倍。排查php配置,nginx配置, OPcache配置 都表现正常, 排除其他原因最终怀疑到 OPcache头上。通过 CacheTool 这一非入侵式的工具,为后续的排查带来质的飞越。最终查到原因。原因开启 OPcache 后,运营在非项目包拉去后的文件时间,被设置成了 未来的一个时间,导致包未被加载到 OPcache中。参考文献折磨人的 OPCache...原创 2022-04-14 16:57:44 · 2049 阅读 · 0 评论 -
Winodws 使用 websocket
需要做一个 聊天室,所以需要使用到 socket 来推送服务器消息。于是想到了websocket 技术。在网上找了一下发现有一个 workman 已经封装好了PHP的socket 。所以尝试一下 用它。下载及安装workman下载 地址 这里我选择的是window版本workamn 手册地址遇到的问题根据手册安装好 workman 后开始测试功能。在使用 js客户端时,发现下面问题。问题:WebS原创 2016-12-26 10:55:08 · 2511 阅读 · 0 评论 -
PHP7的 Throwable
对于php的warning和Notice 错误,在php7以前等错误信息无法被try catch 捕获。一、异常与错误的概述PHP中什么是异常:程序在运行中出现不符合预期的情况,允许发生(你也不想让他出现不正常的情况)但他是一种不正常的情况,按照我们的正常逻辑本不该出的错误,但仍然会出现的错误,属于逻辑和业务流程的错误,而不是编译或者语法上的错误。PHP中什么是错误:属于php脚本自身的...原创 2021-07-05 14:02:01 · 526 阅读 · 0 评论 -
swoole框架Swoft初探
查看php扩展版本php --ri Show configuration for extension .例如查看 swoole版本➜ note-swoole git:(dev) ✗ php --ri swooleswooleSwoole => enabledAuthor => Swoole Team <team@swoole.com>...原创 2021-07-05 14:00:15 · 179 阅读 · 0 评论 -
PHP 性能分析平台 Xhgui
背景生产环境可以监控到哪个接口比较慢,但是想要知道具体那里慢,这个就需要今天的猪脚 Xhgui 性能分析平台了。介绍XHProf 分析数据的图形界面,可以将结果存储在 MongoDB 或 PDO 数据库中。应用程序被分析并将分析数据传输到 XHGui,XHGui 获取该信息,将其保存在 MongoDB(或 PDO 数据库)中,并提供一个方便的 GUI 来使用它。安装参考: perftools/xhgui文档参考: perftools/xhgui...原创 2021-05-31 15:14:03 · 364 阅读 · 0 评论 -
PHP代码注解规范 - phpDoc
PHP代码注解规范背景在日常开发中,经常有小伙伴不注解,或者注解内容不规范,在这里统一列一下phpDoc的注解规范。规范@api表示这是一个提供给第三方使用的 API 接口@author作者格式 @author [名称] [<邮箱>]例如 @author mokeyjay <i@mokeyjay.com>@copyright版权声明。例如很多网站底部都有格式 @copyright [描述]例如 @copyright 1949-2016 China@d原创 2021-03-05 10:05:22 · 351 阅读 · 1 评论 -
Hyperf框架实现Rabbitmq延迟队列
Hyperf框架实现Rabbitmq延迟队列Hyperf框架官方支持了Amqp,但是只是具备了基础发消息和接受消息。对于我们经常使用的延迟队列却不支持,这让人感到痛苦。设计延迟队列由于Rabbitmq默认没有支持延迟队列,需要使用官方的TTL和死信队列来实现我们的延迟队列功能.实现原理:1、rabbitmq 可以针对 Queue和Message 设置 x-message-ttl 来控制消息的生存时间,如果超时,消息变为 dead letter2、rabbitmq 的queue 可以配置原创 2020-07-02 11:44:01 · 4625 阅读 · 12 评论 -
通过工具查询PHP程序堆栈信息
需求在线上发现某些进程一直在执行,消耗cpu特别的多。需要查看到底是那一段代码的导致的这种情况。在线上时,程序一直在执行,在不能中断程序的情况下,可以通过下面的工具排查信息。Top 工具使用格式:top [-] [d] [p] [q] [c] [C] [S] [s] [n]参数说明:d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。p:通过指定监控进...原创 2019-12-03 15:16:06 · 762 阅读 · 0 评论 -
php 配置调优
背景每次需要上一个新环境,都需要配置一下ini文件,这里记录一下php配置需要调优的内容。php.ini 配置文件调优expose_phpPHP版本信息在HTTP头中的泄露,; Decides whether PHP may expose the fact that it is installed on the server; (e.g. by adding its signature...原创 2019-11-13 10:29:09 · 443 阅读 · 0 评论 -
centos php7编译安装Redis,obcache扩展
需求目前需要安装php的扩展redis安装 redis下载wget https://pecl.php.net/get/redis-5.0.2.tgz解压tar -zxvf redis-5.0.2.tgz进入扩展目录执行 phpize/usr/local/Cellar/php@7.1/7.1.8/bin/phpize报错Configuring for:PHP...原创 2019-09-26 11:23:40 · 799 阅读 · 0 评论 -
centos 编译安装 php7.1.8
安装这个被坑惨了. 记录一下 configure 的参数./configure --prefix=/usr/local/Cellar/php@7.1/7.1.8 \--with-config-file-path=/usr/local/etc/php/7.1.8 \--with-config-file-scan-dir=/usr/local/etc/php/7.1.8/conf.d \--...原创 2019-05-14 18:02:18 · 538 阅读 · 0 评论 -
MAC PHPSTORM+PHP7.1+XDEBUG 调试工具
介绍工具版本PHPStormV2018.1.2PHPV7.1.17XDebugV2.7.1在接手一些项目时, 通常需要查询老板代码 . 以及在做新开发时, 需要进行调试问题 .一 . 安装XDebugXDebug 下载地址在选择XDebug时 需要选择适合PHP的版本.通过编译安装curl -O https://xdebug.or...原创 2019-05-14 15:36:58 · 520 阅读 · 0 评论 -
PHP I/O streams
在使用 PHPUnit 做单元测试时,发现用了 fwrite(STDOUT, __METHOD__ . "\n");语句,可以这在窗口显示信息,于是找了一下 STDOUT代表的含义。参考文献PHP官方文档 - I/O streams原创 2017-06-30 10:57:44 · 330 阅读 · 0 评论