手把手教你在国内用正确的姿势使用 Composer

简介: Composer 是 PHP 的一个依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。本文将为大家介绍在国内如何正确地安装和使用 Composer。

安装 composer 命令行工具

# 下载
curl -sS https://getcomposer.org/installer | php
# 移动且重命名
mv composer.phar /usr/local/bin/composer
AI 代码解读

实例操作记录:

bogon:~ zhoumengkang$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...
Composer (version 1.6.4) successfully installed to: /Users/zhoumengkang/composer.phar
Use it: php composer.phar
bogon:~ zhoumengkang$ mv composer.phar /usr/local/bin/composer
AI 代码解读

使用镜像

因为访问国外比较慢,可以使用阿里云 https://developer.aliyun.com/composer 提供的镜像。

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
AI 代码解读

原理是修改了家目录下面的./.composer/config.json
实例操作记录:

bogon:~ zhoumengkang$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
bogon:~ zhoumengkang$ cd .composer/
bogon:.composer zhoumengkang$ ls
auth.json    cacert.pem    cache        config.json    keys.dev.pub    keys.tags.pub
bogon:.composer zhoumengkang$ cat config.json
{
    "config": {},
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://mirrors.aliyun.com/composer/"
        }
    }
}
bogon:.composer zhoumengkang$ pwd
/Users/zhoumengkang/.composer
AI 代码解读

在项目中使用

直接在命令行引入第三方包

进入一个项目直接执行compser命令即可,比如我们要安装phpunit包,只需要在项目目录下执行以下命令即可。

composer require --dev phpunit/phpunit ^6.2
AI 代码解读

实例操作记录:

bogon:untitled4 zhoumengkang$ composer require --dev phpunit/phpunit ^6.2
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 28 installs, 0 updates, 0 removals
  - Installing sebastian/version (2.0.1): Downloading (100%)         
...           
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit suggests installing phpunit/php-invoker (^1.1)
Writing lock file
Generating autoload files
AI 代码解读

不需要预先配置composer.json,如果没有该文件,则自动生成该文件。如下

{
    "require-dev": {
        "phpunit/phpunit": "^6.2"
    }
}
AI 代码解读

如果该文件已经存在,则会把配置添加到该文件中去,这样当你删除了vendor目录,就可以使用更新命令来重新生成。

根据composer.json来安装第三方包

composer install
AI 代码解读

或者

composer update
AI 代码解读

只想安装或者更新某个特定的库,不想更新它的所有依赖,则可以使用

composer install foo/bar
composer update foo/bar
AI 代码解读

实例操作记录:

bogon:untitled4 zhoumengkang$ ls
composer.json   composer.lock   vendor
bogon:untitled4 zhoumengkang$ rm -rf vendor/
bogon:untitled4 zhoumengkang$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 28 installs, 0 updates, 0 removals
  - Installing webmozart/assert (1.3.0): Loading from cache
...
sebastian/global-state suggests installing ext-uopz (*)
phpunit/phpunit suggests installing phpunit/php-invoker (^1.1)
Generating autoload files
AI 代码解读

注意事项

composer.lock

在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定该项目的特定版本。
请提交你应用程序的 composer.lock (包括 composer.json)到你的版本库中。这是非常重要的,因为 install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。
这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响。即使你独自开发项目,在六个月内重新安装项目时,你也可以放心的继续工作,即使从那时起你的依赖已经发布了许多新的版本。

自动加载优化

composer dump-autoload --optimize
AI 代码解读

能够大大减少系统自动加载时间。

目录
打赏
0
1
1
0
58
分享
相关文章
Composer 入门与 Laravel 安装指南
【8月更文挑战第31天】
164 1
手把手教你搭建私有化npm
手把手教你搭建私有化npm
345 2
|
7月前
[已解决]npm淘宝镜像最新官方指引(2023.08.31)
[已解决]npm淘宝镜像最新官方指引(2023.08.31)
3629 0
GitHub天花板!清华大佬纯手码的《python背记手册》火了!
根据5月份的TIOBE指数分析,Python几乎是Java的两倍,以目前的情况来看,Java想重回巅峰怕是遥遥无期,反倒是Python开始了霸榜之旅。 无论任何一门语言,都是需要不断的花时间,花精力去学习的,python也不例外,虽然很多人都在说python如何如何的简单,但并不意味着你可以随便学学敷衍了事。
|
9月前
|
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)(上)
《Go 简易速速上手小册》第7章:包管理与模块(2024 最新版)
140 1
Composer 镜像原理 (3) —— 完结篇
Composer 是一个 PHP 的依赖管理工具,它可以帮助开发者轻松地管理和维护 PHP 项目中的依赖关系。你是否好奇过它的镜像仓库是怎么实现的?本文为你揭晓。
87 0
《阿里开发者手册-Golang专题》电子版下载地址
本期以 Go 语言为主题,收纳阿里巴巴资深程序员语青、丛霄、蜂翅、赋行、路德、冀锋 6 位的优秀技术文章。精解 Go 语言开发应用、常见技术难点以及产品创新实践等,帮助更多开发者快速掌握 Go 语言核心架构及功能,高效解决问题,提升研发效率,在云原生的浪潮下扬帆起航!
300 0
《阿里开发者手册-Golang专题》电子版下载地址

镜像站

+ 订阅

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等