包管理composer

包管理器

好处:

  1. 方便取用别人已经写好的代码

  2. 管理包之前的依赖关系

第一点很明显了:你不会为每个项目都写一个 jQuery、React 这样的东西,而是直接使用别人已经写好的。传统做法是:去官方网站下载对应的 js 文件,然后放到自己项目的对应路径下,比如 /assets/js/ 。而现在有了 npm 和 yarn 这样的东西,99.9999 % 的开放获取的包都在一个集中存放的地方,方便了查找和下载。就好比原来你要到各处去下载软件,现在有了 360 软件管家,只需要在这里搜索和下载就好了。少了很多时间。同时也少了安全风险,下载的东西都不会携带病毒。

第二点其实是第一点的发展版。因为大家写的包都放在这里了。如果我要写一个新的包,里面的一个小程序正好是别人已经写好的,所以我就拿来用了。这样就是我的包对别人的包有了依赖关系。一个大型的库(包)这个依赖关系可能很复杂,比如:依赖于几十个别的包,同时,每个包都要求对应一个确定的版本(因为版本相差太大,可能会有API不兼容的情况)。这样,如果人工去下载每一个依赖的包,将是一个指数级的任务:A 包依赖于 B 和 C,同时 C 依赖于 D 和 E,B 又依赖于 F、G、H,D 又依赖于 I、J、K……如此,基本是人类无法完成的任务。当然,在没有包管理器之前,也没有人写包会依赖于这么多其它人的包,结果当然就是重复劳动:每个包都把一些常用的功能自己实现一遍。

常见的包管理器:

Linux :apt-get   php:composer  node.js:npm  Java:maven

composer使用

以下以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:

compose rdump-autoload

猜你喜欢

转载自blog.csdn.net/beauty5188/article/details/81215870