composer拓展包开发(二)自动更新与版本控制

  • 在上一篇文章中写了composer拓展包的开发,但是在实际情况中我们的仓库的代码是变动的,我们希望提交的拓展包也能同步更新

拓展包的更新同步

composer中我们提交了仓库地址,加入了composer的仓库,但是当我们更新了代码,composer仓库是不会同步更新,这个时候我们需要设置composer仓库的钩子,自动检测github仓库的更新,即使用github进行授权,这里我已经授权,这样我们的composer也进行了同步
在这里插入图片描述

  • 检测一下我们在拓展包中新增sub方法
<?php
namespace Math;


class Math
{
    
    
    //两数相加
    public function sum($a, $b)
    {
    
    

        return $a + $b;
    }

    //两数相减
    public function sub($a, $b)
    {
    
    
        return $a - $b;
    }
}
  • 在使用的项目中更新composer

composr update

  • 我们已经可以正常使用新增的功能
<?php
require './vendor/autoload.php';
use Math\Math;
class Test{
    
    
    function one(){
    
    
        $math = new Math();
        echo $math->sub(10,20);
    }
}
$obj = new Test();
$obj->one();//-10

拓展包的版本控制

在项目中我们是基于某个时间引入的拓展包,我们在此状态下的拓展包进行了我们的项目开发,如果拓展包进行了更新,会对我们的项目造成很大的影响。
在这种情况下,我们就得对拓展包进行版本控制,设置一个个的固定的历史版本不再变动

composer拓展包的开发中开发完成的包,我们只能

composer require superkingm/math dev-master

每次都是拉取最新的拓展包,在正常的情况下,我们一般都是引入版本包,而不是dev-master,只要我们上面我们进行了github的授权产生钩子,我们在github的仓库打上tag就可以自动产生版本

  • 例如在v2.0版本中加入乘法和除法计算,同步并打上本版本的tag
    -在这里插入图片描述
    在composer仓库中我们已经看到更新出了v2.0版本
    在这里插入图片描述
    我们修改项目中的composer.json中修改为 "superkingm/math": "v2.0",修改composer.lock中修改为"version": "v2.0"

更新拓展包

composer update

简单的使用下乘除方法,这里我们已经成功使用上2.0版本的包

<?php
require './vendor/autoload.php';
use Math\Math;
class Test{
    
    
    function one(){
    
    
        $math = new Math();
        echo $math->mult(10,20)."<br>";
        echo $math->div(20,10)."<br>";
    }
}
$obj = new Test();
$obj->one();//200 2

到此我们composer包的自动更新与版本控制也已经完成

猜你喜欢

转载自blog.csdn.net/weixin_43674113/article/details/107411839
今日推荐