摘要:
从最开始的使用redis实现的单进程消费的异步任务系统到加入swoole的多进程消费模式,现在,我们的异步任务系统终于又能迈进一步。 因为有了前面两个简单系统的经验,这回基于RabbitMQ的异步任务系统设计的的更加完善,包括多进程消费,异常重试等。 系统介绍 消费端架构图 从图中可以看到,我们这个 阅读全文
摘要:
概述 Composer 是 PHP 应用程序的依赖管理器,最初发布于大约 8 年前,2012 年 3 月。 在 php 中使用 Composer 可以提高代码的可重用性,并使你的项目能够轻松地集成来自Packagist(主要的 PHPComposer 库)的 PHP 库。今天,我们将重点介绍几个部署 阅读全文
摘要:
在做过大量的代码审查后,我经常看到一些重复的错误,以下是纠正这些错误的方法。 在循环之前测试数组是否为空 $items = []; // ... if (count($items) > 0) { foreach ($items as $item) { // process on $item ... 阅读全文
摘要:
前言 PHP 8 新特性 理解 PHP 8 的 JITzhuanlan.zhihu.com 即将发布的 PHP 8 最受大家关注的新特性就是引入了对 JIT 的支持,我已经简单介绍了 JIT 是什么以及与 Opcache 的区别,这里简单总结下: JIT 是在 Opcache 优化的基础上结合 阅读全文
摘要:
下面是我使用处理动态数组的一些规则。这差不多是一个关于数组设计的风格指南,但是把它添加到对象设计风格指南感觉不太对,因为不是所有的面向对象语言都有动态数组。本文中的示例是用 PHP 编写的,因为 PHP 很像 Java (可能比较熟悉),但是使用的是动态数组而不是内置的集合类和接口。 使用数组作为列 阅读全文
摘要:
这次测试咱们采用Laravel框架。laravel作为最热门的php框架之一,广受认可与欢迎。同时由于集成度很高,每次运行都加载了大量文件,加之使用了大量的闭包、魔术方法,导致laravel框架很重,并发性能极差。OPcache和Swoole都是php的扩展,这次旨在比较这两个扩展分别开启后对Lar 阅读全文
摘要:
概述 Composer 是 PHP 应用程序的依赖管理器,最初发布于大约 8 年前,2012 年 3 月。 在 php 中使用 Composer 可以提高代码的可重用性,并使你的项目能够轻松地集成来自Packagist(主要的 PHPComposer 库)的 PHP 库。今天,我们将重点介绍几个部署 阅读全文
摘要:
内置函数就是Python给你提供的, 拿来直接用的函数,比如print,input等。 截止到python版本3.6.2 ,一共提供了68个内置函数,具体如下 abs() dict() help() min() setattr() all() dir() hex() next() slice() a 阅读全文
摘要:
延迟队列,顾名思义它是一种带有延迟功能的消息队列。那么,是在什么场景下我才需要这样的队列呢? 1. 背景 我们先看看以下业务场景: 当订单一直处于未支付状态时,如何及时的关闭订单 如何定期检查处于退款状态的订单是否已经退款成功 在订单长时间没有收到下游系统的状态通知的时候,如何实现阶梯式的同步订单状 阅读全文
摘要:
本文是最初是来自国外的这篇:PHP Performance Evolution 2016, 感谢高可用架构公众号翻译成了中文版, 此处是转载的高可用架构翻译后的文章从PHP 5到PHP 7性能全评测(含未发布的JIT版PHP 8对比), 稍微调整了格式而成。 导读:PHP 是 Web 开发最常用的语 阅读全文
摘要:
PHP8 的 Alpha 版本,过几天就要发布了,其中包含了不少的新特性,当然我自己认为最重要的还是 JIT,这个我从 2013 年开始参与,中间挫折无数,失败无数后,终于要发布的东东。 不过,今天呢,我不打算谈 JIT,等 PHP8 发布了以后,我再单独写个类似《深入理解 PHP8 之 JIT》系 阅读全文