一. Composer

要了解和解决的问题

1.什么是composer ?
2.composer有什么用?为什么要使用composer?
3.常见的使用场景和实用的命令

1.1 什么是composer?

Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。 - 百度百科

简单说,假如接触前端知识的同学肯定知道npm。通过npm安装自己所需要的package.那么对这个概念就不会模糊了。是的,简单来说就是针对PHP的类似npm的软件。在Java中有maven,Javascript前端有npm,自然PHP中的composer,都是用于处理自己领域的包安装的功能。 不知道大家在没有使用composer安装包之前,常常要引入一个包的流程是这样的:

一般可能到github上搜索相应的package,然后通过Git或者直接下载Zip包,然后放入自己的项目。但是要引入到项目需要自己处理require进来,假如你点都不了解这个包,好的,你的花时间去看看是怎么个引入方法。之后你运气很好,该包没有引入其他依赖。如果依赖与其他包,但是原作者并没有把依赖放在zip里面,那你惨了。你又得去搜索对应的依赖包……。如此反复循环,假设一个包依赖于很多包,那对你的工作量来说无疑是灾难性的。并且这些工作时间纯属浪费。

1.2 composer有什么用?为什么要使用composer?

好的,通过上面你已经知道传统的方式似乎对于小型项目或者说你依赖的包不够复杂的情况下,完全没有任何问题。使用composer简直是杀鸡用牛刀,大炮打蚊子。但是考虑一下,当你的项目是企业级的,你所依赖的包不仅仅那么小。所以到了composer发挥用武之地了。
   遵循把包放到composer进行管理的用户都要把包放到packagist上面去,这个是官方包的仓库。在这个网站你可以搜索到你想要安装的包,前提是包的作者把该包放到packagist上进行管理。现在你已经知道composer的好处了吧,所有包之间的依赖关系你都不用管,你只要一个命令,说”我要引入xx包”,后面的事情你别管,安心的在PHP项目直接require vendor/autoload.php 完毕。现在包的内容你都可以使用了。 通过composer你安装一个复杂包的时间绝对超过5分钟,但是假设是自己去慢慢搜索包和依赖关系,整合到项目,有你忙的。运气好的能整合成功。运气差的,告诉你,有时候你的这条路就是死的。

1.3 常见的使用场景和实用的命令

现在。让我们看看怎么使用composer呢? 直接上composer国内镜像库这里有简易的教程。关于在Windows上,Linux上安装的方式。其实在Linux上安装就简单的一条命名

安装命令: curl -sS https://getcomposer.org/installer | php &&
mv composer.phar /usr/local/bin/composer

替换为中国镜像命令: composer config -g repo.packagist composer https://packagist.phpcomposer.com

在控制台输入 : composer -V

能显示出composer版本信息,恭喜顺利完成安装composer.

打开packagist网站,搜索想要下载的包的名称。例如我们项目需要一个 monolog/monolog的包。

引入命令: composer require monolog/monolog

等待安装完毕即可。此时,在当前目录下会多出一个composer.json composer.block vendor目录,monolog包此时就在vendor目录下面。并且和之前所说的,存在一个autoload.php。只需要在项目require “./vender.autoload.php” 就可以把包引入到项目了。不用你管其它没有意义的事情。

composer.json文件是表明你所要安装的包的信息,具体可以在网上有很多教程观看,很简单,这里就不一一赘述。我们刚才的composer require 命令其实就是把我们包的信息先写入到composer.json文件里面,然后composer自动帮我们 执行了

安装命令: composer install

composer.lock 锁文件是包含了我们当前项目的包的情况。默认composer先到这个文件把之前的包做操作,不管composer.json。只有在composer.lock不在的时候,composer再去查看composer.json获取包的信息。

更新命令:composer update

移除包命令: composer remove package-name

这些应该是常用和实用的命令。一个包安装无非就是真三改查,花费太多时间去研究也不值得。有时间的时候再去看看就可以了。

2 .杂谈

以前学习PHP一开始就没有composer的概念,后来一直听过但是没怎么使用。可能是项目相对比较小吧,呵呵。但是其实花点时间,也不多一个小时足够看看就能会用了。还是有点好处的。一个连composer都不知道和使用的程序员,那肯定不是一个合格的phper程序员。本次的博客也是使用markdown第一次写的博客,不知道效果怎么样,也是刚学着用的。写得不好或者有纰漏,请大家海涵和指正。

Composer的实用部分相关推荐

  1. 使用 satis 搭建一个私有的 Composer 包仓库·精简实用版本

    使用私有包的过程中遇到不少小问题,但是网上找的千篇一律基本上没有一个完整可以能将它用起来的,这里的用起来是实际项目中使用,基于个人这边使用踩坑过程做了个精简版的总结供大家参考-- 说明:私有包管理了解 ...

  2. ABAP Development Tool 代码模板和其他一些实用技巧汇总

    这是 Jerry 2021 年的第 35 篇文章,也是汪子熙公众号总共第 311 篇原创文章. Jerry 已经告别 ABAP 开发很长一段时间了,最近有朋友问我一个关于 ABAP Developme ...

  3. 火速拿来用!对比近 10,000 个 Python 开源项目发现最实用的 TOP34!

    踏着人工智能.区块链的东风,近年来一路"横冲直撞"的 Python 在实现了从小众语言到主流的完美转身后,一头扎进了 2019,依旧没有透出丝毫停下来的架势,反倒有些越烧越热的味道 ...

  4. 【实践】通过Composer,安装yii2-advanced

    前言. Composer 依赖管理 VS 包管理 Composer 不是一个包管理器.是的,它涉及 "packages" 和 "libraries",但它在每个 ...

  5. 绿色数据中心空调设计 书评_书评:PHP中的实用设计模式

    绿色数据中心空调设计 书评 This review of Brandon Savage's Practical Design Patterns in PHP will include my own o ...

  6. composer详解

    一.composer简介 什么是Composer Composer 是 PHP 的一个依赖管理工具,它涉及 "packages" 和 "libraries",简 ...

  7. php 控件开发,分享一些PHP开发者实用工具(上)

    今天小编给大家整理了一些php开发中可能需要用到的工具或组建,需要的朋友可以参考和收藏哦~ PHP 函数的 JavaScript 实现 module.exports = function array_ ...

  8. SimLab Composer 9 for Mac(3D场景制作渲染工具)附破解补丁

    SimLab Composer 9 for Mac是Mac平台上一款功能十分强大,模型重多的3D场景制作渲染工具.可以轻松构建出完美的室内模型,以帮助您在电脑上设计模型,你需要的模型都可以在这款软件上 ...

  9. composer常用插件_醉于Composer插件的强大功能

    composer常用插件 Composer is the sharpest tool in the toolbox of the modern PHP developer. The days of m ...

最新文章

  1. scapy windows install
  2. HttpClientFactory系列二:集成Polly处理瞬态故障
  3. Oracle数据库查询优化
  4. Android 匿名共享内存C接口分析
  5. mysql的驱动connect放在哪里_十年测试解析:ddt结合excel,csv,mysql实现自动化测试数据驱动...
  6. 服务器自动几点重启php,windows下apache及mysql定时自动重启服务器定时自动重启...
  7. 高质量程序设计指南-c/c++语言:笔记之C++函数的高级特性
  8. 网络代理服务器工作原理
  9. 坐标计算距离公式 火星坐标系_地图坐标转换 -- 火星坐标与GPS坐标
  10. ubuntu硬盘序列号怎么查询_Ubuntu系统下查看硬盘信息
  11. 项目二--03.基于Nginx、keepalived的高可用集群之keepalived高可用实现
  12. Html-照片的逐步出现 、心形动画制作、3d立方体魔方、鼠标划过box阴影练习
  13. 基于滴滴云搭建安全稳定的 Memcached 服务器
  14. pip异常No module named ‘pip‘处理方法
  15. 51单片机基础之DS1302
  16. Access.2007数据库开发全书(奋斗的小鸟)_PDF 电子书
  17. Fliqlo——翻页时钟屏保(最新版本),解决所有问题
  18. Vue项目如何打包并且发布
  19. 0-6岁是专注力发展的最佳时期,根据不同年龄培养娃的专注力!
  20. 【天光学术】艺术学论文:民间美术在现代陶瓷设计教学中的应用(节选)

热门文章

  1. ET6运行指南(vs版)
  2. Python中的decimal.Decimal类型和整型相乘后还是decimal.Decimal类型
  3. 调试OpenGL ES应用程序
  4. Windows 编程常用键盘消息命令
  5. 华硕天选1代 R9 4900H 2060 装载oem系统
  6. 初中英语听力软件测试,初中英语考试听力多少分(初中英语听力)
  7. 触摸开关芯片原理及功能特点
  8. www.runoob.com 使用了不受支持的协议。ERR_SSL_VERSION_OR_CIPHER_MISMATCH
  9. 气压计MS5611编程操作流程
  10. GIS的云计算解决方案