composer 使用

composer官方文档

1、如何寻找需要的项目或源码

      https://packagist.org

      进入网站后,可以查询我们想要用的库文件,以monolog为例:

        第一个排名下载量很高。所以我们就用这个了。我们点进去     https://packagist.org/packages/monolog/monolog

       上面圈起来并备注的地方,比较重要

 

二.使用composer.json来加载和下载类库源码

         新建一个文件夹,建立一个composer.json文件,文件内容如下

{
        "require":{
                "monolog/monolog":"1.24.0"   //包名称:包版本
        }
}
~ 

        保存后在同级目录执行        

composer install

         命令执行后,开始自动下载,下载完毕后的目录如下所示

  

        文件结构是:vendor文件夹+composer.lock+composer.json。composer.lock等会再说。进入vendor

       里面是类库文件,我们下载的 composer,会将 composer 依赖的 psr 一起下载下来。autoload.php等会再说,它是一个自动加载类库,很强大,我们只需要加载找个文件,就能自动加载使用其他的类库了,不需要再手动加载。

 

3. composer.lock

        打开这个文件,发现这几乎和composer.json是一样的格式和数据,也是各种约束关系,require文件等。

        在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。以后就会以这个版本为主,只要有这个文件在,就会忽略所有的composer.json文件。这是非常重要的,因为 install 命令将会检查锁文件是否存在,如果存在,它将下载composer.lock指定的版本(忽略 composer.json 文件中的定义)。

        如果不存在 composer.lock 文件,Composer 将读取 composer.json 并创建锁文件。

        我们想想这样有什么作用呢?假设一个场景,多人开发,肯定会有人新的人开发完成将要后续开发,那么他肯定会去更新composer.json的依赖关系,那么其他人更新后,也会同样去更新,这样就乱了。他本来不想去更新,只想用原来的。所以有个这个composer.lock 文件,所有的人都会用一样的依赖关系版本。等全部都开发好了。再将这个composer.lock文件删掉就可以了。

        这意味着如果你的requie的依赖更新了新的版本,你也不会获得任何更新。因为有composer.lock文件存在,此时要想更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件composer.lock

如果我们确实需要更新依赖呢?我们可以使用 update 命令,它将重新生成composer.lock文件

composer update   //更新所有包,慎用
composer update 包名称:包版本   //更新指定某个包
composer require  包名称:包版本  //更新指定某个包

 

4. 包版本的规则

名称实例描述
确切的版本号1.0.2你可以指定包的确切版本。
范围>=1.0 >=1.0,<2.0>=1.0,<1.1|>=1.2通过使用比较操作符可以指定有效的版本范围。 
有效的运算符:>>=<<=!=。 
你可以定义多个范围,用逗号隔开,这将被视为一个逻辑AND处理。一个管道符号|将作为逻辑OR处理。 
AND 的优先级高于 OR。
通配符1.0.你可以使用通配符来指定一种模式。1.0.*>=1.0,<1.1是等效的
赋值运算符~1.2这对于遵循语义化版本号的项目非常有用。~1.2相当于>=1.2,<2.0。想要了解更多,请阅读下一小节

 

5. 下一个重要版本(波浪号运算符)        

         ~ 最好用例子来解释: ~1.2 相当于 >=1.2,<2.0,而 ~1.2.3 相当于 >=1.2.3,<1.3。正如你所看到的这对于遵循 语义化版本号 的项目最有用。一个常见的用法是标记你所依赖的最低版本,像 ~1.2 (允许1.2以上的任何版本,但不包括2.0)。由于理论上直到2.0应该都没有向后兼容性问题,所以效果很好。你还会看到它的另一种用法,使用 ~ 指定最低版本,但允许版本号的最后一位数字上升。

         默认情况下只有稳定的发行版才会被考虑在内。如果你也想获得 RC、beta、alpha 或 dev 版本,你可以使用 稳定标志。你可以对所有的包做 最小稳定性 设置,而不是每个依赖逐一设置。
 

6. autoload.php

      前面说过,在vendor文件夹下面有一个autoload.php文件,这个文件有大大的用户,他是一个自动加载的文件,我们只要加载了它,那么我们就相当于讲其他的类库文件都加载了:

require 'vendor/autoload.php';

     加载这一句就可以了。比如,我们在加载了这一句后,想调用mongolog,我们就可以直接用了,不需要另外加载它。

 

7.create-project

       我们常见的框架symfony 和 Laravel 框架 可以使用这个命令下载

composer create-project laravel/laravel your-project-name 2.1.2

composer create-project symfony/framework-standard-edition  your-project-name  2.1.2

 

8. composer的一些常用的命令:

       composer list 列出所有可用的命令
       composer init 初始化composer.json文件(就不劳我们自己费力创建啦),会要求输入一些信息来描述我们当前的项目,还会要求输入依赖包
       composer install 读取composer.json内容,解析依赖关系,安装依赖包到vendor目录下
       composer update 更新最新的依赖关系到compsoer.lock文件,解析最新的依赖关系并且写入composer.lock文件
       composer search packagename 搜索包,packagename替换为你想查找的包名称
       composer require packagename 添加对packagename的依赖,packagename可修改为你想要的包名称
       composer show packagename
       composer self-update 更新 composer.phar文件自身
       composer command --help 以上所有命令都可以添加--help选项查看帮助信息
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值