Composer -- PHP依赖管理的新时代

一、简介

  说到composer,绝大多数的开发人员都会用到。composer是一个什么工具呢?

  composer 是 PHP 用来管理依赖(dependency)关系的工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。

  

  composer解决的是什么问题?

  在开发中,我们可能会用到第三方库,一个项目一般都是依赖若干个库,而第三方库可能也需要依赖另一个第三方库。那么,谁来管理这种依赖关系呢,就是composer。它不仅解决了库的依赖关系,他还会根据环境,如PHP版本下载对应可支持的第三方库的版本。

二、安装

  想要使用,第一步肯定就是安装。那么如何安装呢?

  安装前首先确保已经安装了PHP并配置到环境变量中可全局使用(像集成环境的可能要手动配一下)。

  windows+R打开运行输入cmd打开控制台,输入“curl -sS https://getcomposer.org/installer | php”,这个前提是要下载curl,点击http://curl.haxx.se/download下载最新版本安装即可。

  也可以使用 "php -r "readfile('https://getcomposer.org/installer');" | php"命令,通过PHP下载安装器。

  

  下载成功后会在当前目录下生成一个composer.phar文件,即安装成功。

  

  进入到文件所在目录可输入“php composer.phar” 查看composer的信息

  

  为了方便,我们可以将composer.phar配置到全局变量中,这样我们所有的项目都能使用composer工具。配置后,只需使用composer命令即可,无需php composer.phar

  

三、使用

  如何使用呢,首先进入到项目的根目录中,创建一个composer.json文件。

  格式如下

{
"name": "wwj/demo",
"description": "teach",
"authors": [
{
"name": "githubwwjcn",
"email": "xxxxxx@qq.com"
}
],
"require": {}
}

  也可以在命令提示符窗口使用composer命令:composer init

  

  插件的安装:

  可以直接在json文件中的require字段中写入插件名字

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

  然后在命令提示符窗口输入命令:composer install,进行安装插件,composer会自动安装该插件所要依赖的所有第三方插件

  

  安装成功,看目录demo

  

  多出了一个vendor文件夹和一个composer.lock文件。

  首先说composer.lock文件,这个用来干什么呢?先来看看里面的内容:

  

{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "ea169889a99da2e9cb5cb9911a50b7c5",
"packages": [
{
"name": "monolog/monolog",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "b704c49a3051536f67f2d39f13568f74615b9922"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/b704c49a3051536f67f2d39f13568f74615b9922",
"reference": "b704c49a3051536f67f2d39f13568f74615b9922",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"psr-0": {
"Monolog": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be",
"role": "Developer"
}
],
"description": "Logging for PHP 5.3",
"homepage": "http://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging"
],
"time": "2011-10-24T09:39:02+00:00"
}
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}

  composer.lock-锁文件,在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。当再次安装该项目的时候,composer首先会检测是否存在composer.lock锁文件,存在则按照锁文件的插件的版本进行安装,而不会安装最新的版本;不存在,则按照composer.json,require里面的版本要求进行安装。

  再说vendor文件夹,大家估计也猜到肯定就是存放插件的地方了

  如图,,也包含了composer提供的插件加载功能autoload。

四、应用

  插件安装后,如何在自己的项目中使用。很简单,只需引入自动加载文件autoload.php。  

  require 'vendor/autoload.php';

  然后实例化该插件

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING)); $log->addWarning('Foo');

  基础的应用,应该就是这样了,有错提出来,我纠正一下~

composer的基本运用的更多相关文章

  1. Laravel Composer and ServiceProvider

    Composer and: 创建自定义类库时,按命名空间把文件夹结构组织好 composer.json>autoload>classmap>psr-4 composer dump-a ...

  2. 基于Composer Player 模型加载和相关属性设置

    主要是基于达索软件Composer Player.的基础上做些二次开发. public class ComposerToolBarSetting { public bool AntiAliasingO ...

  3. Composer概述及其自动加载探秘

    composer概述 一开始,最吸引我的当属 Composer 了,因为之前从没用过 Composer . Composer 是PHP中用来管理依赖关系的工具,你只需在自己的项目中声明所依赖的外部工具 ...

  4. composer 出现 configuration does not allow connection to http.......

    出现这样的问题是,镜像使用的是http,而原地址是需要https,所以配置下关掉https就好了. 我们来个全局设置的方法: composer config -g secure-http false ...

  5. 在linux上如何通过composer安装yii

      Composer可以理解成一个依赖管理工具 它能解决以下问题 a) 你有一个项目依赖于若干个库. b) 其中一些库依赖于其他库. c) 你声明你所依赖的东西. d) Composer 会找出哪个版 ...

  6. composer

    composer 是PHP框架的包安装工具,类似于bower ,npm.bundler. 是命令行工具,没有图形界面. 系统要求 运行 Composer 需要 PHP + 以上版本.一些敏感的 PHP ...

  7. composer 报错:Your requirements could not be resolved to an installable set of packages 解决方法

    composer 报错: - Your requirements could not be resolved to an installable set of packages xxxxxxxxxxx ...

  8. composer 使用笔记

    使用composer 更新项目比如: composer create-project topthink/think wwwroot dev-master --prefer-dist提示openssl异 ...

  9. mac composer 安装

    在命令行执行 curl -sS https://getcomposer.org/installer | php 如果没安装 curl 执行以下代码 php -r "readfile('htt ...

  10. composer安装

    1.首先到php.net下载对应版本的php,zip版本即可,注意windows需要vc11运行库支持 2.配置path路径添加对php解压目录的引用 3.将php.ini-development  ...

随机推荐

  1. .NET的EF框架中:在应用程序配置文件中找不到名为“”的连接字符串问题

    今天在使用EF Code First框架时,当把模型都定义好了,想通过程序包管理控制台利用enable-migrations –force来生成数据库表的时候报错了,如下: 找不到连接字符串,但是我仔 ...

  2. js密码强度校验

    function AuthPasswd(string) { if(!string){ jQuery("#low").removeClass("org"); }) ...

  3. Redis整合spring总结

    一:Redis简介: Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库,缓存和消息代理. 简单来说,它是一个以(key,value)的形式存储数据的数据库. 官网:https://re ...

  4. spring 学习总结(一)

    一.spring概述 1.spring 是什么? Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2 ...

  5. IDEA创建Maven项目和子模块

    一.新建Project a. 新建项目,点击Create New Project b. 选择使用maven来新建项目 选择新建Maven模块(对IDEA来说是项目) 如果Project SDK那里没有 ...

  6. 学习stylus笔记

    最近在研究v-cli3.0,发现了一种新的预处理器,于是花了一些时间去学习下. 学习网站 基本上这个网站上,讲的已经很详情.我下面把我在学习之中的笔记和觉得自己用的多方法贴出来. 1.缩排 使用缩排和 ...

  7. 一个简单的JQuery自适应分页插件twbsPagination

    下载地址:http://esimakin.github.io/twbs-pagination/ 1 解决totalPages不更新的问题 (先移除然后重新加入DOM树中)在使用twbsPaginati ...

  8. 广告点击率预测(CTR) —— 在线学习算法FTRL的应用

    FTRL由google工程师提出,在13的paper中给出了伪代码和实现细节,paper地址:http://www.eecs.tufts.edu/~dsculley/papers/ad-click-p ...

  9. 《Visual C++ 2010入门教程》系列五:合理组织项目、使用外部工具让工作更有效

    原文:http://www.cnblogs.com/Mrt-02/archive/2011/07/24/2115631.html 这一章跟大家分享一些与c++项目管理.VAX.SVN.VS快捷键等方面 ...

  10. YoLo 实践(1)

    目录 YoLo 实践(1) 目标: 实施方法: Step 0. 测试项目是否可以正常运行 运行效果图 使用VOC数据结构训练模型 Step1: 生成统一格式的标注文件和类别文件 Step2: 加载预训 ...