Composer 快速入门教程

简介: Composer 是 PHP 是 PHP5.3 以上的一个依赖管理工具,你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会安装这些依赖的库文件

Composer 快速入门教程

  • ComposerPHPPHP5.3 以上的一个依赖管理工具,你可以在自己的项目中声明所依赖的外部工具库(libraries)Composer 会安装这些依赖的库文件
  • Composer 默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。
  • Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl
  • Composer 可运行在 WindowsLinuxOSX 平台上。
  • Composer 仅仅是一个依赖关系的管理,如同在 iOS 开发中使用的 CocoaPods,前端开发中使用的 NPM
composer -v   #查看版本

阿里云 Composer 全量镜像

https://developer.aliyun.com/composer

全局配置(推荐)

  • 所有项目都会使用该镜像地址:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
  • 取消配置:
composer config -g --unset repos.packagist

项目配置

  • 仅修改当前工程配置,仅当前工程可使用该镜像地址:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
  • 取消配置:
composer config --unset repos.packagist

调试

  • composer 命令增加 -vvv 可输出详细的信息,命令如下:
composer -vvv require alibabacloud/sdk

遇到问题?

  • \1. 建议先将Composer版本升级到最新:
composer self-update
  • \2. 执行诊断命令:
composer diagnose
  • \3. 清除缓存:
composer clear
  • \4. 若项目之前已通过其他源安装,则需要更新 composer.lock 文件,执行命令:
composer update --lock
  • \5. 配置阿里云和官方两个源,阿里云镜像站下载文件出错时再从官方源上下载。tips:单击复制会出现问题,如需拷贝代码请先选中文本点击鼠标右键进行复制。
{
"repositories": [
  {
    "description": "阿里云镜像",
    "type": "composer",
    "url": "https://mirrors.aliyun.com/composer/",
    "canonical": false
   }
]
}

\6. 重试一次,若还有问题,请到钉钉群:23178217 反映。

安装第三方包

根据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

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

项目使用

  • 要使用 Composer,需要先在项目的目录下创建一个 composer.json 文件,文件描述了项目的依赖关系。
{
   
    "require": {
   
        "monolog/monolog": "1.2.*"
    }
}
  • 以上文件说明我们需要下载从 1.2 开始的任何版本的 monolog
  • 安装依赖包:
$ composer install
  • 移除安装包
$ composer remove monolog/monolog
  • require 命令,除了使用 install 命令外,也可以使用 require 命令快速的安装一个依赖而不需要手动在 composer.json 里添加依赖信息。
$ composer require monolog/monolog
  • Composer 会先找到合适的版本,然后更新 composer.json 文件,在 require 那添加 monolog/monolog 包的相关信息,再把相关的依赖下载下来进行安装,最后更新 composer.lock 文件并生成 php 的自动加载文件。

其他常用命令

  • 查看版本信息,以及所有命令介绍
$ composer -v
  • 创建项目,创建一个名称为 testthinkPHP 项目
$ composer create-project topthink/think test
  • search 命令
$ composer search monolog
  • 该命令会输出包及其描述信息,如果只想输出包名可以使用 --only-name 参数:
$ composer search --only-name monolog
  • show 命令:
// 列出所有已经安装的包
$ composer show
// 可以通过通配符进行筛选
$ composer show monolog/*
// 显示具体某个包的信息
$ composer show monolog/monolog
  • 下载依赖(全局安装)
$ composer install
  • 更新依赖
// 更新所有依赖
$ composer update
// 更新指定的包
$ composer update monolog/monolog
// 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
// 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*
  • 升级到最新版本,如果有则更新到最新版本
$ composer selfupdate
  • 诊断命令
$ composer diagnose
  • 清除缓存
$ composer clear
  • 若项目之前已通过其他源安装,则需要更新 composer.lock 文件
$ composer update --lock
  • 重新加载一次(例如:当在 Laravel 中删除了文件,会存在缓存,这个时候就需要重新加载一次清理掉缓存)。
$ composer autoload-dump
// 可简写
$ composer dump

Composer常见的 例子

3.1 查找并安装依赖包

composer search packageName
composer require packageName

3.2 更新依赖包

composer update

3.3 安装指定版本的依赖包

composer require packageName:version

3.4 卸载依赖包

composer remove packageName

3.5 查看当前项目依赖包列表

composer show

3.6 初始化composer.json文件

composer init

3.7 安装生产环境依赖包

composer install --no-dev

3.8 安装开发环境依赖包

composer install --dev

3.9 冻结(锁定)依赖包版本

composer lock

3.10 安装依赖在指定的目录

composer install --prefer-dist --no-dev --optimize-autoloader --working-dir=dirName

3.11 下载依赖包并自动加载

require 'vendor/autoload.php';

3.12 生成autoload.php文件

composer dump-autoload

3.13 创建项目快速启动代码

composer create-project --prefer-dist laravel/laravel projectName

3.14 安装国内镜像加速

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

3.15 清理缓存

composer clear-cache

3.16 运行脚本

composer run-script scriptName

3.17 降级依赖包

composer update packageName --with-dependencies --prefer-lowest

3.18 展示依赖包的依赖关系

composer depends packageName

3.19 比较两个版本之间的差异

composer diff packageName version1 version2

3.20 显示指定依赖包的详细信息

composer show packageName --all
相关文章
|
3月前
|
前端开发 Linux PHP
Composer 入门与 Laravel 安装指南
【8月更文挑战第31天】
87 1
|
机器学习/深度学习 Python
Py之lime:lime库的简介、安装、使用方法之详细攻略
Py之lime:lime库的简介、安装、使用方法之详细攻略
Py之lime:lime库的简介、安装、使用方法之详细攻略
|
前端开发 IDE Java
科研人快速入门LaTex到日常使用,下载安装配置,语法使用说明等
科研人快速入门LaTex到日常使用,下载安装配置,语法使用说明等
2255 1
科研人快速入门LaTex到日常使用,下载安装配置,语法使用说明等
|
存储 Linux 开发工具
Git工具快速入门
Git工具快速入门
153 0
|
JavaScript Ubuntu
gitbook 快速入门
gitbook 快速入门
gitbook 快速入门
|
JavaScript 前端开发 Java
手把手教你写一个composer包
由于程序届的《开源运动》,我们可以在社区找到很多别人提供的工具,也可以向社区贡献我们的代码。 在github还没有兴起的年代,我们是需要到工具的官网下载代码,比如jquery。然后放到我们自己的项目目录里,再在我们的页面中使用。
384 0
手把手教你写一个composer包
|
监控 JavaScript 前端开发
Grunt快速入门教程
Grunt入门介绍:中文主页 : http://www.gruntjs.net/ Grun是一套前端自动化构建工具,一个基于nodeJs的命令行工具 Grunt它是一个任务运行器
123 0
|
JSON 数据格式 Python
Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
Py之simplejson:simplejson库的简介、安装、使用方法之详细攻略
|
人工智能 PyTorch 测试技术
Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
Py之fvcore:fvcore库的简介、安装、使用方法之详细攻略
Py之cvxopt:cvxopt库的简介、安装、使用方法之详细攻略
Py之cvxopt:cvxopt库的简介、安装、使用方法之详细攻略
Py之cvxopt:cvxopt库的简介、安装、使用方法之详细攻略

相关实验场景

更多