来自: 首页 » Coder Life » PHP: HyperText Preprocessor » 现代PHP开发(一)—— PHP 世界的包管理器

现代PHP开发(一)—— PHP 世界的包管理器

图片描述

这是这个系列的第一篇,我们先从所有现代语言都有的包管理器开始。

因为有了包管理器,我们就可以快速开始一个项目/包/库,然后发布或者部署它。

简介

PHP 的包主要分为 “扩展(extensions)” 和 “代码包(packages)”。

所谓扩展,是由 C 语言进行开发,通过下载、编译等步骤集成进环境的一种手段。在 Windows 中,PHP 扩展的后缀是 .dll;在 OS XLinux 中,则为 .so

而“包”的概念,一般是项目级别的使用。

扩展的安装成本较高,包则相对简单。所以两者的应用场景也因此有明显的区别。

举个例子:

一台服务器上运行了三个 PHP 项目,如果这些项目都需要某一种支持(如 Redis 数据库支持),则可以通过下载安装,然后重新编译 Redis 扩展 的方式,重新编译 PHP-fpm(或者php-cli);

但,如果其中的某一个项目需要调用阿里云的短信服务,而其他不需要,那我们则应该考虑 的形式,在项目内部安装 sdk。

扩展

查看源图像
PECL

Pecl 是 PHP 扩展的包管理器,也是安装 PHP 的扩展的推荐方式。

你可以在 PECL :: Package Browser :: Top Level (php.net) 找到几乎所有的 PHP 扩展,但某些扩展(如 xcache)则只能通过源码编译的方式手动安装。

一些对性能要求比较高的 PHP 项目,都会用 C 开发,这也意味着他们只提供了 扩展 的形式和安装方式。

(如国内代表性的 PHP: Yaf - ManualPHP: Swoole - Manual

PHP 的包主要分为两种:

  • PHP 本身提供的打包格式 PHAR
  • 基于 Git/SVN 等版本控制的仓库源码

phar 包

PHAR

PHAR 是一种 PHP 本身提供的打包形式,它允许将整个项目的 PHP 文件/代码都打包为一个文件,然后在可以通过 php xxx.phar 来运行,或者通过 require/include 来引入 PHP 项目中。

很多著名的 PHP 项目,为了用户使用方便,都会将自己打包为 .phar 扩展名的包(如 composerphpunit 等)。

最早的 phar 包仓库是官方在 99 年提供的 PEAR,然后在 20 年后,官方又推出了 PEAR2, 在使用性、速度、安全上都有改进。

PEAR 和 PEAR2 的包管理器分别是 Pear installer 和 Pyrus

最新的 Phar 包管理器是 2015 年诞生的 Phive,你甚至可以用它来安装 Composer。

遗憾的是,到目前(2020/1/5)为止,PhiVE 都没有推出 1.0 版本,稳定性仍有待验证。不过用 PhiVE 来安装开发环境中需要的包,配合 composer 管理正式环境需要的包的方式,还是值得期待的。

源码包

composer中文镜像
  • 源站——Packagist
  • 包管理器——composer

参考:

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据