
php
文章平均质量分 81
撸代码的乡下人
这个作者很懒,什么都没留下…
展开
-
Laravel + connmix 开发分布式 WebSocket 聊天室
connmix 是一个基于 go + lua 开发面向消息编程的分布式长连接引擎,可用于互联网、即时通讯、APP开发、网络游戏、硬件通讯、智能家居、物联网等领域的开发,支持java,php,go,nodejs 等各种语言的客户端。原创 2022-05-06 15:22:18 · 1162 阅读 · 0 评论 -
MixPHP V3 开发流程体验 Swoole, Workerman, FPM, CLI-Server 多种运行模式介绍
MixPHP V3 发布后,由于本身支持超多的执行模式,用户可能无从下手,这里先大体介绍一下:CLI-Server: 适合本机开发,零扩展依赖,Windows/MacOS 等全平台支持PHP-FPM: 适合共享开发环境部署,同时适合 admin 等管理后台项目Swoole, Workerman: 适合线上部署,根据需要选择其一即可Swoole 的多种模式:Swoole 多进程同步: 适合需要使用那些协程不支持的第三方库的项目,和 Workerman 一致Swoole 多进程协程: 适合专原创 2021-08-11 15:54:35 · 328 阅读 · 0 评论 -
MixPHP V3 增加了 PHP-FPM、CLI-Server 的支持
MixPHP V3 主推 Swoole、WorkerMan 驱动,因为这两个平台性能强劲。但是大部分的 PHP 开发者都是开发 API, Web 的程序员,热更新可能是最大的刚性需求,因此我对 Vega 做了扩展,让 MixPHP 增加了 PHP-FPM、CLI-Server 的支持,开发环境可以使用这两种模式,线上部署时切换为性能更强劲的 Swoole、WorkerMan 驱动。开箱难即用PHP 生态需要很多外设,当我们开发时:Swoole:需要安装 swoole 扩展WorkerMan:win原创 2021-07-29 16:12:34 · 174 阅读 · 0 评论 -
MixPHP V3 发布前的感想, 有哪些变化和特点
最近把 MixPHP 逐步重构到了 V3 版本,之前停更了很长时间,是因为一直在开发 MixGo ,回想起 V2~V2.2 版本中我做了很多尝试,其中特别是 V2.2 我非常激进的直接 all in 单线程协程,当时我是这样想的:MixPHP V2.1 为何从 Reactor+Manager+Worker 多进程改为单线程协程,但是切换后实际上带来了一些问题:很多用户用了一些奇奇怪怪的第3方库,都是依赖 guzzle 和 curl 的,不管是 swoole hook curl 还是 mix/guzzle原创 2021-07-23 18:17:53 · 175 阅读 · 0 评论 -
使用 mix/vega + mix/db 进行现代化的原生 PHP 开发
最近几年在 javascript、golang 生态中游走,发现很多 npm、go mod 的优点。最近回过头开发 MixPHP V3 ,发现 composer 其实一直都是一个非常优秀的工具,但是 phper 们对 composer 的用法很多都不是很深入,今天我就采用 composer 手撸一个原生项目,帮助大家理解现代化的原生 PHP 开发流程。PHP 的开发者可能是所有语言里被惯坏的最厉害的,因为几乎每个框架都提供了脚手架,像这样:composer create-project这个在 npm原创 2021-07-07 16:33:33 · 360 阅读 · 1 评论 -
Mix Vega 发布, 支持 Swoole、WorkerMan 的 CLI HTTP 网络框架
Mix VegaVega 是一个用 PHP 编写的 CLI HTTP 网络框架,支持 Swoole、WorkerManOverviewVega 是 MixPHP V3+ 内置的最核心的组件 (可独立使用),参考golang gin mux 开发,它包含 Web 应用处理的大量功能 (数据库处理除外),包括:路由、渲染、参数获取、中间件、文件上传处理等;具有 CLI 模式下强大的兼容性,同时支持 Swoole、WorkerMan, 并且支持 Swoole 的多种进程模型。推荐搭配以下数据库使用:原创 2021-06-29 19:49:08 · 265 阅读 · 2 评论 -
Mac Silicon M1 编译安装 PHP8 & Swoole4.6 ARM64 全过程记录
最近搞了一台 M1 的 Mac mini 准备用这个开发 mixphp v3 版本,之前尝试了几次没有编译成功,今天再次尝试安装成功了,网络上很多人的文章存在问题(可能是系统环境不同),特此分享让后续的人闭坑。面临的问题由于最新版本的 macOS Big Sur 即便关闭安全模式 /usr/lib 也无法写入文件,因此导致 make install 无法安装任何 php 扩展,因此想装 Swoole 只能自行编译安装 php 到 /usr/local 目录% csrutil statusSystem原创 2021-06-24 13:35:04 · 1238 阅读 · 2 评论 -
Mix PHP V2.2 发布,与 go-micro 深度集成的 PHP 微服务开发框架
Mix PHP 是一个基于 Swoole 开发的高性能 PHP 框架,从 2017 年开始经过多年发展收获了很多中小型团队的支持,框架版本也经历了多个版本的迭代:V1.*: 基于 Swoole 的常驻内存型 PHP 高性能框架V2.0: 基于 Swoole 的 FastCGI、常驻内存、协程三模 PHP 高性能框架V2.1: 基于 Swoole 4.4+ 单线程协程 PHP 框架V2.2: 基于 Swoole 4.4+ 单线程协程 PHP 微服务框架 ????微服务开发本次版本更新主要是增加原创 2020-05-27 11:50:23 · 245 阅读 · 0 评论 -
如何在 MixPHP V2.1 中使用 EasyWeChat
国内中小型公司有大量的微信接入需求,EasyWeChat 是一个非常流行的微信开发库,由于该库是为 FPM 模式的传统框架而打造,因此很多 Swoole 用户不知道如何使用,下面详细介绍一下 MixPHP v2.1 中如何使用。Hook Guzzle首先由于 overtrue/wechat 是基于 GuzzleHttp 开发的,因为 GuzzleHttp 无法直接在 Swo...原创 2020-01-19 16:21:36 · 969 阅读 · 0 评论 -
MixPHP V2.1 为何从 Reactor+Manager+Worker 多进程改为单线程协程
在 Mix V2.1 之前的版本一直采用与现在主流的 Swoole 框架一样基于多进程 Swoole\Server 开发,V2.1 开始 Mix 全部基于 Swoole 的 Coroutine/Server 开发 (单线程协程),让 Server 也可使用完全同步的编程方式,底层自动实现异步IO。Reactor+Manager+Worker 多进程优缺点Master+Worker 的进程模型是...原创 2019-11-30 09:58:10 · 603 阅读 · 0 评论 -
Mix PHP V2.1 发布,基于 Swoole 4.4+ 单线程协程 PHP 框架
MixPHP 是什么一个基于 Swoole 开发的高性能 PHP 框架,经过两年发展收获了很多中小型团队的支持,框架版本经历了:V1.*: 基于 Swoole 的常驻内存型 PHP 高性能框架V2.0: 基于 Swoole 的 FastCGI、常驻内存、协程三模 PHP 高性能框架V2.1: 基于 Swoole 4.4+ 单线程协程 PHP 框架 ????更新本次 v2.1 重构版本主要...原创 2019-10-19 15:02:38 · 546 阅读 · 0 评论 -
Mix PHP V2 实例:AliCloud 短信协程池异步发送守护程序
前些时间我们发布了 Mix PHP V2 实例:协程池异步邮件发送守护程序 范例,这一次我们提供一个使用大厂 SDK 通过 Swoole Hook 协程化来并行执行短信发生任务,本文是一个代码简单、IO性能极其强大的范例。请先升级到 mix-framework >= v2.0.5。本范例依然使用消息队列的方式接收短信发送任务,消息中间件使用:redis生产者通常框架中使用...原创 2019-05-24 13:10:10 · 770 阅读 · 0 评论 -
MixPHP 与 Phalcon 数据库并发性能测试
今天完成了 MixPHP 的 Mysql/Redis 进程级长连接处理,想着做一下压测,试试性能,于是就拿公司在使用的 Phalcon C扩展框架对比一下,对比后的结果吓我一跳,感慨 MixPHP极简架构 + 基于Swoole的MixHttpd + 进程级长连接 带来了如此强大的性能。原创 2017-09-14 16:46:32 · 603 阅读 · 0 评论 -
MixPHP:基于 Swoole 的常驻内存型 PHP 框架
内置 Server 基于 Swoole 的次世代 PHP 开发框架 (开发文档完善)原创 2017-09-06 14:54:32 · 4749 阅读 · 0 评论 -
使用 mixphp 打造多进程异步邮件发送
邮件发送是很常见的需求,由于发送邮件的操作一般是比较耗时的,所以我们一般采用异步处理来提升用户体验,而异步通常我们使用消息队列来实现。传统 MVC 框架由于缺少多进程开发能力,通常是采用同一个脚本执行多次,产生多个进程的方式,mixphp 封装了 TaskExecutor 专用于多进程开发,用户能非常简单的开发出功能完善的高可用多进程应用。下面演示一个异步邮件发送系统的开发过程,涉及知识点...原创 2018-07-11 20:57:36 · 1079 阅读 · 0 评论 -
使用 mixphp 处理其他框架 20% 的高并发部分
经常在群里听到一些朋友问:TP 的项目怎么迁移到 mixphp 来处理高并发,我通常都是回复需要重写,可是一个开发很久的 TP 项目,代码量巨大,又怎么可能会花大量时间成本来重写呢?那么为何我们不尝试换一种思路来解决问题? 在现有框架不变的情况下,引入 mixphp 来处理高并发的部分。瓶颈分析二八效应在任何领域都存在,如果你做过多个项目,你就会发现: 一个项目中...原创 2018-07-11 20:59:05 · 734 阅读 · 0 评论 -
Swoole WebSoctet 使用 zlib 压缩之 PHP 与 pako.js
一些理论知识先说一下deflate算法吧,deflate是zip压缩文件的默认算法, 其实deflate现在不光用在zip文件中, 在7z, xz等其他的压缩文件中都用, 实际上deflate只是一种压缩数据流的算法,任何需要流式压缩的地方都可以用。也就是说 zlib 格式, gzip 格式,是文件格式,deflate 是这些文件格式使用的压缩算法。传输方式deflate 压缩后是二进制,...原创 2018-09-30 17:53:08 · 646 阅读 · 0 评论 -
Mix PHP V2 新特性:协程、定时器
协程Mix PHP V2 基于 Swoole 4 的 PHP Stream Hook 协程技术开发,协程使用方式与 Golang 几乎一致,包括框架封装的协程池、连接池、命令行处理都大量参考了 Golang 的系统库风格。除了缺少 select case 外,Mix PHP 与 Golang 的协程几乎一致,框架还提供了连接池、协程池、命令行处理这些开箱即用的封装。xgo + Chann...原创 2019-04-13 21:32:06 · 288 阅读 · 0 评论 -
Mix PHP V2 生态:让 Guzzle 支持 Swoole 的 Hook 协程
Guzzle 是一个非常流行的 PHP 的 HTTP 客户端,现在各大厂的 SDK 也都开始基于 Guzzle 开发,因为 Swoole 只支持 PHP Stream 的协程 Hook ,而 Guzzle 默认是使用 cURL 扩展的,所以 Mix PHP 开发了 Guzzle Hook,能在不修改源码的情况下让 Guzzle 协程化。Githubhttps://github.com/mix...原创 2019-05-06 15:57:39 · 548 阅读 · 0 评论