推荐六个鲜为人知的Composer命令

1. Composer,一种跨PHP的依赖管理工具

Composer是一种跨PHP的依赖管理工具。它允许你声明依赖的库和它们的版本,并且管理(安装/更新)它们。功能强大的软件包管理器是用PHP编写的,可以连接Packagist软件包存储库。

2. 使用Composer进行自动加载

使用Composer进行自动加载,你可以在你的PHP项目中使用任何你想要的库(从Packagist软件包库中)。Composer自动生成一个PSR-4自动加载类的classmap,自动生成构造函数和健壮的库。

2.1 在你的项目中安装Composer

你可以通过在Linux系统上使用以下命令来安装Composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php composer-setup.php

php -r "unlink('composer-setup.php');"

安装Composer后,你可以在控制台上查看版本:

composer --version 

2.2 安装库到你的项目中

你可以使用Composer安装各种有用的PHP库。以下是一个例子:

composer require guzzlehttp/guzzle 

2.3 自动加载库

Composer自动加载使用PSR-4标准。默认情况下,autoload.php会在生成的vendor/autoload.php文件中自动加载任何需要的库。

在PHP文件中:

require 'vendor/autoload.php';

使用Composer,开发者可以很容易地为项目添加许多依赖,并且可以通过自动加载它们来管理这些库。

3. 查看可安装软件包列表

通过Composer,你可以查看有哪些包是可用的。以下是命令:

composer search *part of package name*

例如,你可以查看由Symfony编写的可安装包:

composer search symfony

4. 创建新的PHP库时使用Composer

如果你想创建你自己的PHP库,你可以使用Composer。使用composer init命令可以创建项目的composer.json文件。文件中包含项目的依赖及其版本。

composer init

在composer.json文件中,你可以通过指定项目的requiring来定义你的库的依赖库:

"require": {

"vendor/package": "1.3.2",

"vendor/package2": "5.*"

}

在你创建PHP库后,你可以使用Composer发布它。使用composer.json文件,在Packagist中具有自己的地址。当其他用户需要使用你的库时,他们可以使用Composer下载它。

通过使用Composer,你可以使用简单的计划来管理应用程序或者服务器上的依赖项

5. 更新依赖

当你发现依赖的库中有安全漏洞,你可以通过Composer来轻松更新这个库。你也可以使用Composer更新所有库。以下是命令。

5.1 更新所有的包

composer update

5.2 更新特定的包

composer update *package-name*

例如,更新Guzzle库:

composer update guzzlehttp/guzzle

6. 私有仓库

Composer默认情况下,从Packagist需要安装库。然而,当你想使用私有库时,你需要使用另一种方法。在这种情况下,你可以使用Satis来构建你的私有依赖库。以下是步骤:

6.1 安装Satis

使用以下命令在Linux上安装Satis:

curl -O https://getcomposer.org/satis.phar && chmod +x satis.phar

6.2 构建Satis

打开satis.json文件,使用以下命令创建你自己的repository:

php satis.phar build satis.json repository/

6.3 使用Satis获取私有库

你可以使用Composer安装此私有库的部分。请注意,Composer需要提供composer.json文件,其中指定需要使用私有库的版本及其可用的其他库:

{

"repositories": [

{

"type": "composer",

"url": "http://your-repo/repository"

}

],

"require": {

"your-package": "*"

}

}

Satis是打包、Rhesis和发布内部PHP库的号工具。使用它,你可以将私有PHP软件包完全与公开的PID包分开。