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');

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

转载于:https://www.cnblogs.com/wwjchina/p/9394594.html

composer的基本运用相关推荐

  1. composer PHP Fatal error: Allowed memory size of 报错解决

    执行以下命令(安装多线程) php composer.phar require hirak/prestissimo 出现以下提示 PHP Fatal error: Allowed memory siz ...

  2. CentOS7安装Composer

    1.使用命令下载 curl -sS https://getcomposer.org/installer | php 2.下载之后设置环境变量 mv composer.phar /usr/local/b ...

  3. composer爆错:zlib_decode():data error

    昨晚用nginx运行Yii的一个开源小项目,结果composer安装依赖一直报错,如下 Failed to decode response: zlib_decode(): data error 如果遇 ...

  4. compser可以检查php扩展吗,composer扩展

    ## 一些简单的thinkphp扩展 1. 正则表达式的扩展: PHP7以上: ``` composer req gherkins/regexpbuilderphp ``` PHP5 ``` comp ...

  5. 简单安装与使用composer

    1.下载composer.exe工具,然后进行安装 这一步需要找到你使用的php版本文件 2.windows+r     cmd  输入composer 安装中国镜像,提高使用效率 https://p ...

  6. 用composer安装laravel-bjyblog

    前面讲了两行命令composer的安装,现在我们来操作一下composer安装基于laravel的博客laravel-bjyblog.测试环境是linux,bt面板,php7.2安装扩展fileinf ...

  7. Packagist / Composer 中国全量镜像

    Packagist 镜像 请各位使用本镜像的同学注意: 本镜像已经依照 composer 官方的数据源安全策略完全升级并支持 https 协议!请各位同学 按照下面所示的两个方法将 http://pa ...

  8. laravel项目composer安装

    1.下载 Composer (https://pkg.phpcomposer.com/#how-to-install-composer) 安装前请务必确保已经正确安装了 PHP.打开命令行窗口并执行 ...

  9. Composer 篇

    学习网站 Composer 中文网 资源包 Packagist Packagist / Composer 中国全量镜像 如何安装 Composer 下载 Composer 安装前请务必确保已经正确安装 ...

  10. 【完结】利用 Composer 完善自己的 PHP 框架(三)——Redis 缓存

    本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顾 上两篇文章中我们完成了 View 视图加载类和 ...

最新文章

  1. 正则表达式中空格的危害
  2. python使用字典格式化字符串-Python中将(字典,列表等)变量格式化输出
  3. 计算同比 环比_PowerBI学习教程(三)时间累积同比环比计算
  4. Hiredis库的简单使用
  5. 运维人员mysql如何访问_MySQL运维实战 之 PHP访问MySQL你使用对了吗
  6. 《JavaScript设计模式与开发实践》原则篇(3)—— 开放-封闭原则
  7. rono在oracle的作用_oracle中rownum作用及用法
  8. 湖北职称计算机考试报名时间2016,湖北2016年下半年职称计算机考试报名时间延长通知...
  9. android反编译工具 ApkDec-Release-0.1
  10. Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
  11. 2020年研究生数学建模竞赛总结复盘
  12. Linux显示器超频黑屏怎么办,显示器超频黑屏怎么办
  13. AH8063,输入6.6V-30V,4A大电流,三节锂电池充电管理芯片iC
  14. 技能学习:学习使用golang(gin框架) + vue.js,开发前端全栈网站-1.工具和本地环境
  15. Xcode—新建/配置pch文件
  16. 世界卫生组织0-10岁儿童体格心智发育评价标准(女)
  17. Web前端:什么是前端框架?
  18. windows系统安全基础知识——系统进程与病毒
  19. 计算机网络实验 —— 验证性实验
  20. Dubbo——Merger的实现

热门文章

  1. Android之ListView异步加载网络图片(优化缓存机制)
  2. 容器 vector :为何要有reserve
  3. 如何制作VSPackage的安装程序
  4. Java IO流总结(zz)
  5. c#_Math.Sign()
  6. hive增量表和全量表_基于 Flink + Hive 构建流批一体准实时数仓
  7. java排队叫号_java多线程(4)模拟排队叫号程序,不能出现交替执行的结果
  8. html圆圈里面问号,html,css实现问号提示信息
  9. 一般认为计算机发展历史经历,2018年职称计算机考试考前冲刺练习及答案(1)...
  10. arm服务器芯片尺寸,华为第四代ARM服务器自研芯片Hi1620规格曝光 全球首款7nm工艺的数据中心用ARM处理器...