学习 Composer
hefengbao 发布于 2024.09.10
Composer - A Dependency Manager for PHP(PHP的依赖管理器)。
官网:
PHP 包需发布到 https://packagist.org/
。
安装
Windows 系统直接下载安装即可 https://getcomposer.org/Composer-Setup.exe 。前提是安装了 PHP
。
Ubuntu 系统:
cd ~
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
基本使用
对常用的框架如 Laravel
等,composer 所需的配置文件 composer.json
已在更目录添加,要做的往往是安装所依赖的包:
composer install
//或者
composer update
如果不使用框架,完全从零开始搭建项目,创建项目目录,比如 demo
, 进入目录打开 Shell, 运行 composer init
命令,一步一步操作即可,示例如下:
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [bao/demo]: hefengbao/demo
Description []: composer init 示例
Author [n to skip]: hefengbao
Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []: project
License []: MIT
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]?
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Search for a package:
Add PSR-4 autoload mapping? Maps namespace "Hefengbao\Demo" to the entered relative path. [src/, n to skip]:
{
"name": "hefengbao/demo",
"description": "composer init 示例",
"type": "project",
"license": "MIT",
"autoload": {
"psr-4": {
"Hefengbao\\Demo\\": "src/"
}
},
"authors": [
{
"name": "hefengbao"
}
],
"require": {}
}
Do you confirm generation [yes]?
Generating autoload files
Generated autoload files
PSR-4 autoloading configured. Use "namespace Hefengbao\Demo;" in src/
Include the Composer autoloader with: require 'vendor/autoload.php';
安装依赖
例如项目需要依赖 PHP 的日期时间处理包 Carbon
, 在 https://packagist.org 上搜索 nesbot/carbon
:
composer require nesbot/carbon
查看 composer.json
的 require
项,已添加 "nesbot/carbon": "*"
:
{
"name": "hefengbao/demo",
"description": "composer init 示例",
"type": "project",
"license": "MIT",
"autoload": {
"psr-4": {
"Hefengbao\\Demo\\": "src/"
}
},
"authors": [
{
"name": "hefengbao"
}
],
"require": {
"nesbot/carbon": "*"
}
}
默认是使用最新版本,有时由于兼容问题,需要指定特定版本:
composer require nesbot/carbon:"3.*"
参考 https://blog.csdn.net/u011383596/article/details/119429833 了解更多。
如果只在开发环境使用,pestphp/pest
是一个 php 测试框架, 通过 --dev
参数指定只在开发环境加载:
composer require pestphp/pest --dev
其他
可在 composer.json
文件添加如下配置,那么 require
中的项会排序:
"config": {
"sort-packages": true
}
有 0 条评论
发表评论
您的电子邮箱地址不会被公开。 必填项已用 * 标注