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

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

安装 composer 命令行工具

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

实例操作记录:

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

使用镜像

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

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

原理是修改了家目录下面的./.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

在项目中使用

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

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

composer require --dev phpunit/phpunit ^6.2

实例操作记录:

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

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

{
    "require-dev": {
        "phpunit/phpunit": "^6.2"
    }
}

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

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

composer install

或者

composer update

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

composer install foo/bar
composer update foo/bar

实例操作记录:

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

注意事项

composer.lock

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

自动加载优化

composer dump-autoload --optimize

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

相关文章
|
缓存 安全 PHP
【阿里云镜像】配置阿里云 Composer 全量镜像
【阿里云镜像】配置阿里云 Composer 全量镜像
2949 0
【阿里云镜像】配置阿里云 Composer 全量镜像
|
API PHP C语言
php8安装fileinfo扩展
php8安装fileinfo扩展
1891 0
|
域名解析 运维 JavaScript
只需5步!在轻量应用服务器部署Hexo博客
轻量应用服务器征文活动投稿教程帖,只需5步完成Hexo博客的部署实践,步骤完整,操作性强~
只需5步!在轻量应用服务器部署Hexo博客
|
人工智能 监控 机器人
阿里云开发者社区博文规范及指引
阿里云开发者社区博文规范及指引
3312 24
阿里云开发者社区博文规范及指引
|
8月前
|
弹性计算 API Docker
在ECS上使用百炼部署满血版DeepSeek R1
本文为您介绍如何在ECS实例上部署Open WebUI,并通过大模型服务平台百炼API调用DeepSeek-R1模型推理服务。帮助您快速体验满血版DeepSeek-R1模型。
|
10月前
|
人工智能 缓存 安全
每一个大模型应用都需要一个 AI 网关|场景和能力
本次分享的主题是每一个大模型应用都需要一个 AI 网关|场景和能力。由 API 网关产品经理张裕(子丑)进行分享。主要分为三个部分: 1. 企业应用 AI 场景面临的挑战 2. AI 网关的产品方案 3. AI 网关的场景演示
1276 1
|
前端开发 Linux PHP
Composer 入门与 Laravel 安装指南
【8月更文挑战第31天】
395 2
ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
本文详解了在ThinkPHP框架中配置多应用的方法,包括安装扩展、删除默认controller文件夹、创建多应用、修改配置文件以启用多应用、测试访问以及如何配置不同域名访问不同应用的步骤。
ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
|
Ubuntu Linux 网络安全
Docker&Docker Compose安装(离线+在线)
Docker&Docker Compose安装(离线+在线)
16868 1