composer是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。

MAC、LInux安装composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Windows安装:

https://getcomposer.org/Composer-Setup.exe

composer 国内镜像配置:(命令行中执行以下命令)

composer config -g repo.packagist composer https://packagist.phpcomposer.com

生成一个空的Composer项目:

在合适的地方新建一个文件夹,命名为 mvc,在文件夹下新建文件 composer.json

{
"require": {
}
}

命令行切换到 mvc目录下,运行:

composer update

就会在该目录下生成一个vendor文件夹。以后所有的第三扩展包都会安装在这里。

里面的代码大家可以看看。

安装扩展包

以下以monolog为例

声明依赖

在项目目录下创建一个composer.json文件,指明依赖,比如,你的项目依赖 monolog:

{
"require": {
"monolog/monolog": "1.2.*"
}
}

如果不需要使用https,可以这么写,以解决有时候因为https造成的问题:

{
"require": {
"monolog/monolog": "1.2.*"
},
"config": {
"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提供了自动加载的特性,只需在你的代码的初始化部分中加入下面一行:

require 'vendor/autoload.php';

  

composer是php包管理工具的更多相关文章

  1. php composer包管理工具

    一 . 包管理工具 你在Centos上装工具的时候直接yum -y install xx 比你去rpm -ivh xx.rpm 是不是爽很多呢? composer 就是安装php 代码的一个类似工具. ...

  2. Composer : php依赖管理工具

    原始时代 我记得在当时用php的时候还没有composer,只有个pear,但是不好用呀,还不如直接在互联网上到处复制代码了,更快更不容易出错,当时也没有github这么好的社区工具了 总结如下 代码 ...

  3. NodeJS包管理工具——npm入门

    如今每个语言体系中都有一个包管理工具,PHP的Composer,Ruby的gem,Python的pip,Java的Maven……当然还有Node.js的npm.有的人会奇怪为何要引入又一个新东西来让我 ...

  4. Golang学习--包管理工具glide

    上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...

  5. Go语言包管理工具dep

    什么是dep? dep和go,在一定程度上相当于maven之于Java,composer之于PHP,dep是go语言官方的一个包管理工具. 相比较go get而言,dep可以直接给引入的第三方包一个专 ...

  6. [Todo]各种语言包管理工具

    看到一篇文章不错: http://harttle.com/2015/05/29/pkg-manager.html 包管理和构建系统是现代的软件开发团队中必不可少的工具,也是Linux软件系统的常见组织 ...

  7. Python | Pipenv官方推荐的python包管理工具

    原文地址:https://cloud.tencent.com/developer/article/1355672 Pipenv - 官方推荐的的python包管理工具. Pipenv是一款旨在将所有包 ...

  8. glide包管理工具

    上一篇文章中我们已经成功的运行了go的代码,这是我们迈出的最基础的一步. 一个项目通常会依赖很多外部的库,当依赖的库比较多的时候,手工管理就会比较麻烦,这个时候就需要包管理工具出场了,帮你管理好所有依 ...

  9. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

随机推荐

  1. ubuntu boot空间不足的解决方法

    ubuntu boot空间不足的解决方法 2013年12月11日 11:11:39 yypony 阅读数:17000 标签: ubuntu内存boot内核更多 个人分类: linux_usageubu ...

  2. 求逆元 - HNU 13412 Cookie Counter

    Cookie Counter Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13412&a ...

  3. 关于Unity的组件和作用

    一.Transform组件 整个场景由节点树组成. 节点+Transform组件,每个Transform有自己的孩子Transform,由Transform组成Transform树,而每个Transf ...

  4. Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性

    Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性. Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型. Final和abstrac ...

  5. 文件 I/O 问题

    文件 I/O 问题:(1)对不存在的或者错误的文件进行操作吗?(2)文件以不正确的方式打开吗?(3)文件结束判断不正确吗?(4)没有正确地关闭文件吗? #include <iostream> ...

  6. 目标检测YOLO算法-学习笔记

    算法发展及对比: 17年底,mask-R CNN YOLO YOLO最大的优势就是快 原论文中流程,可以检测出20类物体. 红色网格-张量,在这样一个1×30的张量中保存的数据 横纵坐标中心点缩放到0 ...

  7. android Contacts/Acore进程常常被Kill,导致联系人开机后丢失怎么办?

    Contacts/Acore进程,在内存较少和开机进程过多的情况下会常常被 ActivityManager Kill 掉. 导致Sim卡联系人开机后未导入或者仅仅导入一部分,造成联系人丢失的现象,可是 ...

  8. 用SQL语句创建触发器

    --假设XSCJ数据库中增加一新表XS_HIS,表结构和表XS相同,用来存放从XS--表 --中删除的记录.创建一个触发器,当XS表被删除一行,把删除的记录写到日--志表XS_HIS中. CREATE ...

  9. 插件—jquery.validate.js

    前言 在学习jquery.validate.js中的一个小案例,只是这个插件的简单使用. 案例代码如下: <head>    <title></title>    ...

  10. chrome不支持字体12px

    如果网页字体小于12px的话,人眼看着会不太舒服,所以chrome的最小字体为12px. 如果想要缩小字体,可以尝试用CSS3中的 transform: scale(相应的缩小倍数)来实现. 不过不推 ...