学习 Composer

hefengbao 发布于 2024.09.10

Composer - A Dependency Manager for PHP(PHP的依赖管理器)。

官网:

https://getcomposer.org/

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.jsonrequire 项,已添加 "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
}

未分类    Composer  

上一篇:PHP OPCache:Laravel性能提升的秘密武器

下一篇:SQL 的 join 用法

有 0 条评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注