手把手教你在国内用正确的姿势使用 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

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

相关文章
|
3月前
|
JavaScript 关系型数据库 MySQL
nodejs使用初体验
文章介绍了Node.js的基本概念和使用方法,包括Node.js的定义、创建第一个应用、实现HTTP服务器服务和操作数据库的步骤。通过示例代码展示了如何使用Node.js创建服务和连接MySQL数据库,并使用npm安装所需的依赖包。
nodejs使用初体验
|
4月前
|
前端开发 Linux PHP
Composer 入门与 Laravel 安装指南
【8月更文挑战第31天】
109 1
|
7月前
|
数据采集 Java Python
GitHub天花板!清华大佬纯手码的《python背记手册》火了!
根据5月份的TIOBE指数分析,Python几乎是Java的两倍,以目前的情况来看,Java想重回巅峰怕是遥遥无期,反倒是Python开始了霸榜之旅。 无论任何一门语言,都是需要不断的花时间,花精力去学习的,python也不例外,虽然很多人都在说python如何如何的简单,但并不意味着你可以随便学学敷衍了事。
|
7月前
|
数据采集 Python
GitHub 上的超级 Python 游戏项目,不容错过!
GitHub 上的超级 Python 游戏项目,不容错过!
284 0
GitHub 上的超级 Python 游戏项目,不容错过!
|
7月前
|
数据采集 机器学习/深度学习 JavaScript
5个火爆 GitHub 的 Python 练习项目,快来收藏!
5个火爆 GitHub 的 Python 练习项目,快来收藏!
534 0
|
Java 编译器 Go
官方golang包管理神器,值得一试!
官方golang包管理神器,值得一试!
官方golang包管理神器,值得一试!
|
Python
Python下载速度太慢?使用国内网站速度直接飞起(附安装教程)
Python下载速度太慢?使用国内网站速度直接飞起(附安装教程)
2140 0
Python下载速度太慢?使用国内网站速度直接飞起(附安装教程)
|
JavaScript 前端开发 Java
手把手教你写一个composer包
由于程序届的《开源运动》,我们可以在社区找到很多别人提供的工具,也可以向社区贡献我们的代码。 在github还没有兴起的年代,我们是需要到工具的官网下载代码,比如jquery。然后放到我们自己的项目目录里,再在我们的页面中使用。
407 0
手把手教你写一个composer包
|
JavaScript 前端开发 开发工具
开源必备,手把手教你做自己的开源项目--如何把代码放到npm上让别人下载
开源必备,手把手教你做自己的开源项目--如何把代码放到npm上让别人下载
开源必备,手把手教你做自己的开源项目--如何把代码放到npm上让别人下载
下一篇
DataWorks