Composer是什么
玩过Linux或者玩过编程的应该都知道,yum、apt-get、npm、bower等命令,composer其实和上面是一样的,只是composer专门给PHP用。
- 就像iOS中的Pods,Carthage,Android中的gradle
- pod = cocoapods 编译成静态链接库或者动态框架文件,会修改Xcode项目属性配置依赖关系
- Carthage 去中心化(无中心库), 非侵入性:动态框架,不会修改Xcode项目属性配置依赖关系
- gradle(JCenter,mavenCenter,JitPack)。Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。
而Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你快速安装他们。涉及 “packages” 和 “libraries”。
平时我们安装一个PHP类库,需要搜索->下载;使用composer,我们只要知道包名,直接composer insatll就可以了。
Composer 也只是一段 PHP 脚本,用官方的话说就是:
是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
Composer用途
安装PHP包、依赖库。
通过过composer,我们可以使用大量的第三方库,而无需自己造轮子
比如
monolog
- $ composer require monolog/monolog
laravel
- $ composer create-project laravel/laravel learnlaravel5 5.0.22
thinkphp5:然后在命令行下面,切换到你的web根目录下面并执行下面的命令:
- $ composer create-project topthink/think=5.0.* tp5 –prefer-dist
你可以在 https://packagist.org/ 找到你需要的库。甚至你可以提交自己写的优秀的库到该平台里供大家使用。
安装
废话不多说,直接上代码
安装
curl -sS https://getcomposer.org/installer | php
全局
mv composer.phar /usr/local/bin/composer
之后,就可以直接使用composer install安装包了。不过通常情况下只需将composer.phar的位置加入到PATH就可以,不一定要全局安装。
镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
- 常见镜像地址:
更新
composer self-update
操作执行结束,会在当前目录下生成composer.phar文件,在Linux里,composer.phar是可执行程序。
例如,我们可以使用php composer.phar update执行更新操作。
全局安装:
mv composer.phar /usr/local/bin/composer
验证
composer
[parallels@centos-7 html]$ composer
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 1.8.4 2019-02-11 10:52:10
Usage:
command [options] [arguments]
Options:
...
version
[parallels@centos-7 html]$ composer -V
Composer version 1.8.4 2019-02-11 10:52:10
使用
初始化
在自己想要创建项目的地方新建一个文件夹,命名为 ComposerP1,在文件夹下新建文件
composer.json:
{
"require": {
}
}
命令行切换到 ComposerP1 目录下,运行:
composer update
就会在该目录下生成一个vendor文件夹。以后所有的第三扩展包都会安装在这里。
安装扩展包
在项目目录下创建一个composer.json文件,指明依赖,比如,你的项目依赖 monolog:
{
"require": {
"monolog/monolog": "1.2.*"
},
"config": { // 解决有时候因为https造成的问题
"secure-http": false
}
}
安装依赖
安装依赖非常简单,只需在项目目录下运行:
composer install
如果没有全局安装的话,则运行:
php composer.phar install
更新全部的包(谨慎使用):
composer update
注意:使用composer install或者composer update命令将会更新所有的扩展包,项目中使用需谨慎!!!
若只安装指定的包推荐在命令行使用一下命名进行安装。
composer require monolog/monolog
如果需要指定版本:
composer require “monolog/monolog:1.2.*”
更新某个包:
composer update monolog/monolog
移除某个包:
composer remove monolog/monolog
如果手动更新了composer.json需要更新autoload:
composer dump-autoload
命令汇总
- composer list 列出所有可用的命令
- composer init 初始化composer.json文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包
- composer install 读取composer.json内容,解析依赖关系,安装依赖包到vendor目录下
- composer update 更新最新的依赖关系到compsoer.lock文件,解析最新的依赖关系并且写入* composer.lock文件
- composer search packagename 搜索包,packagename替换为你想查找的包名称
- composer require packagename 添加对packagename的依赖,packagename可修改为你想要的包名称
- composer show packagename
- composer self-update 更新 composer.phar文件自身
- composer dump-autoload –optimize 优化一下自动加载
- composer command –help 以上所有命令都可以添加 –help选项查看帮助信息