Composer使用体验
什么是Composer
简单来说,Composer是PHP的包依赖管理器。但是Composer并不是类似于Yum、Apt的包管理器。Composer可以用于包或者第三方库的安装,但是可以选择在Project范围内进行安装。Composer是受到Node的NPM启发。
Composer可以在下面的方面帮助到你:
- 允许我们定义项目 Project 依赖的第三方库
 - 自动帮我们查找到哪些库可以下载,并且下载安装
 
安装(Linux/Unix/mac)
Composer 需要PHP 5.3.2+ 版本的支持
Composer的安装文件很简单,直接下载一个PHP文件,然后在命令行执行就可以。安装过程实际上是下载一个 composer.phar 的文件到项目文件夹。这个文件是 Composer 的库文件。
php composer-setup.php    //安装,下载composer.phar文件,默认到当前目录
php composer.phar //运行composer
使用
配置 composer.json
想在项目中使用 Composer 首先需要一个 composer.json 文件。该文件为必需文件,该文件指定了项目依赖哪些第三方库。
{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}
Composer 会根据 composer.json 的配置从 资源库 中查找。资源库可以是 Packagist 或者指定的资源库。
安装
php composer.phar install
执行上面的命令,可以将monolog安装(下载)到项目中。下载完成后,项目中多一个 composer.lock 文件以及一个 vendor 文件夹。vendor 文件夹中包含了下载的 monolog 库以及一个 autoload.php、composer文件夹。
第一次安装时,Composer 根据 composer.json 文件来决定需要哪些依赖,之后会将安装过程中的相关信息收集写入 composer.lock 文件,该文件将我们依赖的第三方库的版本进行锁定。composer.lock 文件应当提交到版本库中,以确保其他用户都使用相同的第三方库。
Autoload
require __DIR__ . '/vendor/autoload.php';
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
Composer 会产生一个 autoload.php 文件,代码中包含该文件后就可以正常使用第三方库。也可以自己在 composer.json 中配置 Autoload的信息。
{
    "autoload": {
        "psr-4": {"Acme\\": "src/“}    //注册psr-4的自动加载器,命名空间为 Acme
    }
}
配置之后,执行php composer.phar dump-autoload来重新生成autoload。
更新第三方库到最新版本
php composer.phar update
这个命令可以将项目中的第三方库进行更新,更新到最新版本,依赖于 composer.json 的配置。同时更新 composer.lock 文件。
参考资料:
1、Composer
Composer使用体验的更多相关文章
- Composer简介及使用实例
		
1.PHP-FIG 官网:http://www.php-fig.org/ php编码规范: 本文档是PHP互操作性框架制定小组(PHP-FIG :PHP Framework Interoperabil ...
 - 【转载】在 2016 年做 PHP 开发是一种什么样的体验?(一)
		
转自:https://www.v2ex.com/t/312651 在 2016 年做 PHP 开发是一种什么样的体验?(一) 嘿,我最近接到一个网站开发的项目,不过老实说,我这两年没怎么接触编程,听说 ...
 - composer很慢修改镜像
		
有两种方式启用本镜像服务: 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中.见“例1” 单个项目配置: 将配置信息添加到某个项目的 composer. ...
 - 转:PHP  Composer 管理工具的介绍  这个相对清晰点
		
转自:http://www.aichengxu.com/view/14872 一.PHP的一些臭历史 Dependency Manager For PHP,Composer.在Composer还没诞生 ...
 - 利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM
		
本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顾 经过前三篇文章 基础准备 . 构建路由 和 设计 ...
 - php Composer中国全量镜像
		
http://pkg.phpcomposer.com/ http://www.yiichina.com/doc/guide/2.0/intro-upgrade-from-v1 https://getc ...
 - 7.Composer的安装和使用
		
1.安装Composer: 局部安装 要真正获取 Composer,我们需要做两件事.首先安装 Composer (同样的,这意味着它将下载到你的项目中): curl -sS https://getc ...
 - 【转】在 2016 年做 PHP 开发是一种什么样的体验?(一)
		
原文: https://www.v2ex.com/t/312651 在 2016 年做 PHP 开发是一种什么样的体验?(一) 嘿,我最近接到一个网站开发的项目,不过老实说,我这两年没怎么接触编程,听 ...
 - composer 的快速安装
		
Packagist 镜像 请各位使用本镜像的同学注意: 本镜像已经依照 composer 官方的数据源安全策略完全升级并支持 https 协议!请各位同学 按照下面所示的两个方法将 http://pa ...
 
随机推荐
- lr参数化取值与连接数据库
			
TXT文本,EXCEL表格以及数据库中的表都可以作为参数的数据集载体,LR都是支持的. 特别提醒: 1.在形成数据池之后,数据库中的数据变化不会影响数据池中的数据. 2.数据文件一定要以一个空行结束, ...
 - codeforces Educational Codeforces Round 9  E - Thief in a Shop
			
E - Thief in a Shop 题目大意:给你n ( n <= 1000)个物品每个物品的价值为ai (ai <= 1000),你只能恰好取k个物品,问你能组成哪些价值. 思路:我 ...
 - 微控工具xp模块-开发版[微信(wechat)二次开发模块]
			
http://repo.xposed.info/module/com.easy.wtool 微控工具xp模块-开发版[微信(wechat)二次开发模块] 基于xposed框架的微信二次开发模块,方 ...
 - 02:实现Singleton模式
			
Java实现单例模式有很多种实现方法,其中我们应根据需要选择线程安全的与非线程安全的两种方式,根据对象实现的方式又分为饱汉与饿汉方式. 这里使用java中的volatile关键字与synchroniz ...
 - CodeForces - 612C   Replace To Make Regular Bracket Sequence  压栈
			
C. Replace To Make Regular Bracket Sequence time limit per test 1 second memory limit per test 256 m ...
 - 【java】Hibernate saveOrUpdate失效以及补救方案
			
有个需求是如果unique key不存在则插入,存在则更新. 简单的方式先select一下再insert 或者update,但是嫌太麻烦而且慢,所以采用Hibernate中session.saveOr ...
 - 面向对象设计原则 迪米特法则(Law of Demeter)
			
迪米特法则(Law of Demeter) 又叫作最少知识原则(Least Knowledge Principle 简写LKP),英文简写为: LoD. 这是一种面向对象程序设计的指导原则,它描述了一 ...
 - BZOJ 2653: middle 主席树 二分
			
https://www.lydsy.com/JudgeOnline/problem.php?id=2653 因为是两个方向向外延伸所以不能对编号取前缀和(这里只有前缀和向后传递的性质,不是实际意义的和 ...
 - Codeforces Round #461 (Div. 2)
			
A - Cloning Toys /* 题目大意:给出两种机器,一种能将一种原件copy出额外一种原件和一个附件, 另一种可以把一种附件copy出额外两种附件,给你一个原件, 问能否恰好变出题目要求数 ...
 - hdu 2476 区间dp
			
题意: 给出两个串s1和s2,一次只能将一个区间刷一次,问最少几次能让s1=s2 例如zzzzzfzzzzz,长度为11,我们就将下标看做0~10 先将0~10刷一次,变成aaaaaaaaaaa 1~ ...