composer的基本运用
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的基本运用的更多相关文章
- Laravel Composer and ServiceProvider
Composer and: 创建自定义类库时,按命名空间把文件夹结构组织好 composer.json>autoload>classmap>psr-4 composer dump-a ...
- 基于Composer Player 模型加载和相关属性设置
主要是基于达索软件Composer Player.的基础上做些二次开发. public class ComposerToolBarSetting { public bool AntiAliasingO ...
- Composer概述及其自动加载探秘
composer概述 一开始,最吸引我的当属 Composer 了,因为之前从没用过 Composer . Composer 是PHP中用来管理依赖关系的工具,你只需在自己的项目中声明所依赖的外部工具 ...
- composer 出现 configuration does not allow connection to http.......
出现这样的问题是,镜像使用的是http,而原地址是需要https,所以配置下关掉https就好了. 我们来个全局设置的方法: composer config -g secure-http false ...
- 在linux上如何通过composer安装yii
Composer可以理解成一个依赖管理工具 它能解决以下问题 a) 你有一个项目依赖于若干个库. b) 其中一些库依赖于其他库. c) 你声明你所依赖的东西. d) Composer 会找出哪个版 ...
- composer
composer 是PHP框架的包安装工具,类似于bower ,npm.bundler. 是命令行工具,没有图形界面. 系统要求 运行 Composer 需要 PHP + 以上版本.一些敏感的 PHP ...
- 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 ...
- composer 使用笔记
使用composer 更新项目比如: composer create-project topthink/think wwwroot dev-master --prefer-dist提示openssl异 ...
- mac composer 安装
在命令行执行 curl -sS https://getcomposer.org/installer | php 如果没安装 curl 执行以下代码 php -r "readfile('htt ...
- composer安装
1.首先到php.net下载对应版本的php,zip版本即可,注意windows需要vc11运行库支持 2.配置path路径添加对php解压目录的引用 3.将php.ini-development ...
随机推荐
- Markdown调查
Markdown调查 一.Editor.md 文档详细,使用者较多 1.1 主要特性 支持“标准”Markdown / CommonMark和Github风格的语法,也可变身为代码编辑器: 支持实 ...
- 转IE9以下$.ajax跨域返回“No transport”
$.ajax({ type: "POST", async: false, contentType: "application/x-www-form-urlencoded; ...
- 在mysql语句中为什么要加反引号
在MySQL语句中我们有时候经常会遇到反引号(``),刚开始的时候不知道什么意思,他是什么作用呢? Select * from `member` order by posts desc limit 0 ...
- 牛顿迭代,多项式求逆,除法,开方,exp,ln,求幂
牛顿迭代 若 \[G(F_0(x))\equiv 0(mod\ x^{2^t})\] 牛顿迭代 \[F(x)\equiv F_0(x)-\frac{G(F_0(x))}{G'(F_0(x))}(mod ...
- elentment-ui解析
序言 现在前端的技术越来越杂,也越来越细了,以至于每次看完文档都会有个错觉,就是自己差不多会了.真正去做项目的时候又是重复之前的步骤. 之前写Java的时候,会习惯性的看看源码,看完之后会对知识掌握的 ...
- 关于Telnet使用
一.telnet作用 可以使用telnet检查 ip port的连通性 语法: telnet ip port 注意点: 1.使用前先操作系统安装telnet: 2.ip port 中间没有 “:”: ...
- jenkins start
author:alex.wang date:2017.05.25 system:centos7.2 ip:192.168.1.46 download: wget http://mirrors.jenk ...
- 深度解析pos机,养卡人必看!
好多人对POS 好像都比较迷茫,这个说这个POS 好,那个说那个POS 好.下面就我对POS 的认知给兄弟们说下.对与不对的各位见谅. 第一.一清机 一清机是指在结算日结算后直接通过支付公司账号转 ...
- 如何解决 Linux 虚拟机磁盘设备名不一致的问题
问题描述 在 Linux 虚拟机内,将附加的多块数据磁盘以设备名(/dev/sdxx)的方式创建文件系统,并将之写入 /etc/fstab 文件中实现启动自动挂载功能.但是在虚拟机重启之后,会随机出现 ...
- SQLServer 2008 新增T-SQL 简写语法
1.定义变量时可以直接赋值 DECLARE @Id int = 5 2.Insert 语句可以一次插入多行数据 INSERT INTO StateList VALUES(@Id, 'WA'), (@I ...