惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Securelist
量子位
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
IT之家
IT之家
博客园 - 聂微东
V
V2EX
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
云风的 BLOG
云风的 BLOG
aimingoo的专栏
aimingoo的专栏
S
Secure Thoughts
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
The Hacker News
The Hacker News
S
Schneier on Security
The GitHub Blog
The GitHub Blog
T
Tenable Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
美团技术团队
D
DataBreaches.Net
C
CERT Recently Published Vulnerability Notes
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
Docker
V
Vulnerabilities – Threatpost
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 【当耐特】
The Register - Security
The Register - Security
博客园 - 叶小钗
Jina AI
Jina AI
MongoDB | Blog
MongoDB | Blog
H
Heimdal Security Blog
小众软件
小众软件
PCI Perspectives
PCI Perspectives
Spread Privacy
Spread Privacy
Help Net Security
Help Net Security
TaoSecurity Blog
TaoSecurity Blog
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
S
Security Affairs
C
Cybersecurity and Infrastructure Security Agency CISA
Apple Machine Learning Research
Apple Machine Learning Research
Know Your Adversary
Know Your Adversary
Schneier on Security
Schneier on Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
WordPress大学
WordPress大学
Simon Willison's Weblog
Simon Willison's Weblog

PHP武器库

4天花40亿,glm-5v-turbo体验笔记-PHP武器库 ulthon_admin 2.1 全面支持智能体驱动,内置框架技能,自动建表、自动分配菜单、自动分配权限、页面接口同体、自动验证接口和数据!-PHP武器库 CSS框架的“最后一公里”:从基础元件到业务场景-PHP武器库 ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架-PHP武器库 Caddy 流量监控终极指南:用 Prometheus + Grafana 点亮你的服务黑盒-PHP武器库 从零到一:用 Vue 打造一个零依赖、插件化的 JS 库-PHP武器库 大规模 PHP 应用在高并发下如何进行性能优化?-PHP武器库 PHP 高性能队列探索:从 SQLite 到内存,我们该如何选择?-PHP武器库 HTTPS 自签名证书生成与安装完整指南-PHP武器库 BTRFS 核心功能与实践笔记-PHP武器库 一个社区语言能泛起多大浪花?PHP30周年线上活动PHPverse-PHP武器库 盘点一下这些年PHP在桌面应用方面的解决方案-PHP武器库 ulthon_admin 发布新版,新增地图选点组件、优化提示样式、增强优化多出细节-PHP武器库 像树一样,慢慢生长!包含大量特性更新,升级底层layui和ThinkPHP、增加docker配置、升级权限配置、更换富文本、实现新的扩展架构和代码架构等等。-PHP武器库 PHP网站改版了知道吗?-PHP武器库 BSD 开源协议解析:自由度与灵活性的平衡-PHP武器库 感觉PHP和vue在前端方面差不多,有没有必要学vue或者其他的前端框架?-PHP武器库 前端会被后端代替吗?-PHP武器库 有哪些知名的网站使用 PHP 进行开发?-PHP武器库 想学编程,java,python,php先学哪个比较好?-PHP武器库 现在的 ThinkPHP8(重构版) 和 Laravel8哪个好? -PHP武器库 PHP8.3发布-PHP武器库 [AppNode]Linux 服务器集群管理面板-PHP武器库 [Hestia]开源网络服务器控制面板,快速、可靠、开源-PHP武器库 web初学者如何保证自身服务器安全?-PHP武器库
告别PECL,拥抱PIE:像Composer一样管理PHP扩展-PHP武器库
2025-10-05 · via PHP武器库

近日,PHP社区通过了一项重要决议:根据RFC: Deprecate PECL and Adopt PECL Installer for Extensions (PIE)PIE(PHP Installer for Extensions)已被正式采纳为PHP扩展管理的推荐工具。这标志着PHP生态系统向着更加现代化、标准化的方向迈出了关键一步。

这项RFC到底意味着什么?

首先,让我们正确理解这项变革的实质:

这不是一场革命,而是一次进化

  • PECL工具和网站继续正常运行,你的现有项目不会受到影响
  • 这只是官方"推荐"地位的变更,从PECL转向PIE
  • 尚未制定PECL的移除时间表,未来如有需要会另行讨论

立即生效,但不破坏现有环境

  • 不依赖特定PHP版本,RFC接受后推荐立即生效
  • 将在PECL相关资源中添加转向PIE的指引信息
  • 经过社区投票,已获得正式批准

为什么需要PIE?解决真实世界的开发痛点

虽然PECL在单一Linux环境下工作良好,但在现代开发实践中,我们面临更多复杂场景:

团队协作的环境一致性

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

# 传统方式:依赖文档和人工操作
新成员入职 → 阅读文档 → 手动安装扩展 → 可能版本不一致

# PIE方式:自动化、标准化
新成员入职 → git clone → pie install → 环境完全一致

跨平台开发的挑战

  • 开发团队中混合使用Windows、macOS、Linux
  • 不同平台需要不同的配置和安装方法
  • PIE提供统一的安装体验,消除平台差异

PIE的核心理念:一致性体验优先

PIE的设计哲学是"一致性体验优先",它通过架构层面的巧妙设计,从根本上消除了平台差异带来的困扰。

统一的安装体验

# 在所有平台上,安装方式完全一致
$ wget https://github.com/php/pie/releases/latest/download/pie.phar
$ chmod +x pie.phar
$ sudo mv pie.phar /usr/local/bin/pie

# 使用相同的命令安装扩展
$ pie install phpredis/phpredis
$ pie install mongodb/mongodb xdebug/xdebug

智能化的平台适配

  • Linux/macOS:沿用成熟的编译安装流程,保持性能优势
  • Windows:自动使用预编译DLL,彻底告别环境配置烦恼
  • 相同的命令,在不同的平台提供完全一致的使用体验

一致性的项目依赖管理

// pie.json - 像composer.json一样管理扩展依赖
{
    "extensions": {
        "phpredis/phpredis": "^6.0",
        "mongodb/mongodb": "^1.15"
    },
    "require-dev": {
        "extensions": {
            "xdebug/xdebug": "^3.1"
        }
    }
}

团队中的任何成员,在任何平台上,只需运行pie install,就能获得完全一致的扩展环境。这种一致性体验大大降低了团队协作的复杂度。

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

实际应用场景

CI/CD流水线简化

# 之前
- run: |
    pecl install redis
    pecl install mongodb
    echo "extension=redis.so" >> php.ini
    
# 现在  
- run: pie install

Docker环境构建

FROM php:8.2-cli
COPY --from=ghcr.io/php/pie /pie /usr/local/bin/pie
COPY pie.json .
RUN pie install  # 一行命令安装所有扩展

注意:处理系统级依赖

需要明确的是,PIE 负责的是 PHP 扩展自身的管理流程。如果一个扩展依赖于操作系统级别的库(例如 mbstring 依赖 libonig-dev,或者某些扩展依赖 libssl-dev),你仍然需要先通过系统的包管理器(如 aptyum)来安装这些依赖。

例如,在 Dockerfile 或 CI/CD 脚本中,你的步骤会是这样:

# Dockerfile 示例
FROM php:8.2-cli

# 1. 先安装系统依赖
RUN apt-get update && apt-get install -y \
    libonig-dev \
    libzip-dev \
    unzip
    # ... 其他扩展可能需要的库

# 2. 再使用 PIE 安装 PHP 扩展
COPY --from=ghcr.io/php/pie /pie /usr/local/bin/pie
COPY pie.json .
RUN pie install

这一点与传统的 pecl 或手动编译安装的行为是一致的。PIE 简化的是 PHP 层的操作,而不是系统层的管理。

开发团队协作

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

# 新成员 onboarding
git clone your-project
pie install
# 完成!所有必需扩展已就位,版本完全一致

如何开始使用PIE

对于新项目

直接使用PIE管理扩展依赖,在项目根目录创建pie.json文件。

对于现有项目

可以在维护周期中逐步迁移,或者在新的功能开发中开始使用PIE。

个人开发者

现在就可以开始尝试,体验更简洁的扩展管理方式。

总结:为什么你应该关注PIE?

对普通开发者来说

PIE让安装PHP扩展变得像使用Composer安装包一样简单。你不用再担心不同平台的差异,不用记住复杂的配置步骤。一个命令,搞定所有扩展。

对团队负责人来说

PIE确保了团队中每个成员的环境一致性。新成员加入时,不再需要花费半天时间配置环境。CI/CD流水线更加简洁可靠。

对项目质量来说

通过版本锁定和明确的依赖声明,避免了"在我机器上好好的"这类经典问题。项目的可维护性和可移植性都得到了提升。

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

最重要的是

这不是一个实验性的新工具,而是PHP官方的未来方向。现在开始学习使用PIE,是为未来的PHP开发做准备。而且由于过渡是渐进式的,你有充足的时间来适应。

PIE代表了PHP生态系统的成熟和进步——从"能工作"到"工作得好",从"个人工具"到"团队标准"。现在就是开始体验的最佳时机。

原文标题: 告别PECL,拥抱PIE:像Composer一样管理PHP扩展

原文地址: https://phpreturn.com/index/a68e2646f3d3e0.html

原文平台: PHP武器库

版权声明: 本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。