PHP

使用workerman加速任意项目

众所周知,workerman是基于php cli的,由于php cli模式下无法使用php自带的header、sesion、cookie等函数,这导致将传统的php项目无法直接在workerman容器下直接运行。

我一度以为让传统业务在workerman中运行,就必须更改框架甚至业务代码以适配workerman,直到joanhey发了一个issue,打破了我的认知。

他们发布了一个名叫AdapterMan的项目,它可以做到不更改传统框架代码的情况下让你的传统php项目放到workerman中正常运行,并且他们公司已经在生产环境用了2年。

注意,是零代码改动直接让laravel、lumen、Slim等框架的项目在workerman上运行。

目前他们已经在laravel、lumen、Slim、Symfony、CakePHP、Yii2、KumbiaPHP 等做了初步压力测试,性能有很大的提升。

以下是压测结果

Laravel 8

Fw Plaintext Json Single query Multiple query Updates Fortunes
Laravel 14,799 14,770 9,263 3,247 1,452 8,354
Laravel Roadrunner 482 478 474
    

Hyperf 3.0,PHP 新时代

回顾

在过去的一年半时间里,Hyperf 2.2 共发布了 35 个小版本,使 Hyperf 达到了一个前所未有的高度,这里也获得了一些不错的数据反馈。

Hyperf 在 GitHub 和 Gitee 上的关注度也得到了显著提升,分别获得了 4.9k 和 791 个 star,整体关注度增长也很稳定。

Hyperf 框架的安装量也达到了 90万次,每天都有约 1300次的安装,这也表明了 Hyperf 已经广泛应用于相关行业中并支撑了大量的系统运行。

Hyperf 组织下的有效 repo 更是达到了约 140个(去除掉 Archive 项目后),维护工作量空前巨大,但迭代仍然高频。

2023 年的 PHP

从 20 世纪 90 年代中期作为个人项目起步,PHP 已经发展成为最流行的 Web 开发语言之一,为从小型博客到大型企业应用程序的一切提供支持。

这种语言在近三十年的时间里经历了惊人的转变。即使在过去 10 年内,PHP 也以我们无法想象的方式发生了变化。

每年,我都会写一篇关于 PHP 现状的文章,回顾和展望未来。让我们开始!

如何延长遗留 PHP 应用程序的生命周期

PHP 正在稳步发展。每年都会有一个主要的新版本发布,其中包含新功能、性能改进、相当一部分弃用,甚至语法更改。PHP 核心开发人员维护两个最新的 PHP 版本,其中包括主动错误修复和安全修复,然后是安全修复。这实际上意味着每个主要的 PHP 版本将最多支持三年,并且现有的 PHP 应用程序将被迫升级。

PHP 8.2发布了!

PHP 8.2发布了!

PHP 8.2 为性能和细粒度类型安全、readonly类、敏感参数编辑支持、新random扩展和许多新功能带来了类型系统改进,以及一些旨在简化和现代化 PHP 语言的更改,例如:
只读类 (Readonly classes)

析取范式 (DNF) 类型
新的独立类型:null、false 和 true
新的 “Random” 扩展
traits 中的常量
弃用动态属性。

PHP 8.2 新特性

所有 PHP 7.x 版本现在都是 EOL(寿命终止)

PHP 7.4 是 PHP 7.x 系列的最后一个版本,今天达到了生命周期结束日期。这实质上意味着不会对任何 PHP 7 版本进行错误或安全修复。

PHP 7.0.0 是 PHP 7.x 系列的第一个版本,于 2015 年 12 月发布,对该语言进行了几项重大改进。PHP 7.0 是为 PHP 带来标量类型(stringint,float等)以及返回类型支持的版本。它还添加了对抽象语法树 (AST) 的支持,并删除了许多已弃用和过时的功能(例如mysql扩展)。

PHP 7.x 系列中的一些主要功能里程碑包括:

  • 2016 年的 PHP

在 Mac 上使用 Homebrew 升级到 PHP 8.2

使用 Homebrew 升级

首先确保 brew 是最新的:

brew update

接下来,升级PHP。您可以使用内置的 php 配方,但我建议使用shivammathur/homebrew-php

#正常升级

brew upgrade php

#升级用shivammathur/homebrew-php

brew tap shivammathur/php
brew install shivammathur/php/php@8.2

要在版本之间切换,请使用以下命令:

brew link --overwrite --force php@8.2

您可以在存储库中阅读更多内容。

#下一步

通过运行检查当前版本php -v

如何在 Debian 和 Ubuntu 系统上安装/升级 PHP 8.2

如何在 Debian、Ubuntu 和其他基于 Ubuntu 的系统上安装 PHP 8.2
PHP 8.2带来了主要的新特性,例如只读类、新random扩展敏感参数编辑以及语言简化更改,包括动态属性的弃用和字符串插值相关的弃用。

注意:PHP 8.2 尚未达到 GA 版本,但
PHP 8.2 计划于 11 月 24 日发布。当第一个稳定的 PHP 8.2 版本发布时,此通知将被删除。在此之前,本指南的其余部分将安装 PHP 8.2 的最新候选版本。对于生产服务器,建议等到 GA 发布。

    

PHP 8.2 中弃用的动态属性

与次要版本一样,PHP 8.2增加了一些弃用。弃用通常是令人沮丧的根源,但重要的是要意识到它们实际上非常有帮助。我已经写过关于处理一般弃用的文章,所以如果你已经感到沮丧,也许最好先看看那个帖子。今天,我想关注一个特别是在 PHP 8.2 中的弃用:弃用的动态属性。

所以首先,什么是动态属性?好吧,它们是类定义中不存在的属性,但在运行时动态设置在这些类的对象上。

例如这个Post类没有name属性,但是我们在运行时设置它:

class Post
{
}

// …

$post = new Post();

$post->name = 'Name';

var_dump($post->name); // 'Name'

自 PHP 8.2