aliirfaan/laravel-simple-force-update

保持应用程序版本为语义版本控制(SemVer)格式。比较本地和当前/发布版本。用于强制更新移动应用程序。

3.0.0 2021-10-01 07:01 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:50 UTC


README

我们经常希望客户端,特别是移动应用程序更新到最新版本。要启用强制更新功能,我们需要在数据库中保留发布版本并与设备的版本进行比较。此包创建一个表来保留发布版本,并提供基于版本比较的建议操作的服务。

特性

  • 用于保留多个应用程序和平台的版本结构的表格
  • 使用语义版本控制格式保留版本
  • 提供接口,以便您可以实现自己的强制更新逻辑
  • 遇到无效的语义字符串时抛出自定义异常

默认强制更新逻辑

  • 候选版本 == 最大版本 || 候选版本 > 最大版本 : 不采取行动
  • 候选版本 < 最大版本 && 候选版本 > 最小版本 : 操作:更新可用
  • 候选版本 < 最小版本 : 操作:更新所需/强制更新
  • 候选版本 == 最小版本 : 操作:更新可用

要求

安装

您可以使用composer在现有的Laravel项目中安装此包

 $ composer require aliirfaan/laravel-simple-force-update

通过编辑config/app.php文件并添加到提供者数组中,注册ServiceProvider

  aliirfaan\LaravelSimpleForceUpdate\SimpleForceUpdateProvider::class,

注意:用于Laravel <5.1版本

 'aliirfaan\LaravelSimpleForceUpdate\SimpleForceUpdateProvider',

使用以下方式发布文件

 $ php artisan vendor:publish --provider="aliirfaan\LaravelSimpleForceUpdate\SimpleForceUpdateProvider"

或仅使用php artisan vendor:publish,并从输出列表中选择aliirfaan\LaravelSimpleForceUpdate\SimpleForceUpdateProvider

应用迁移

 $ php artisan migrate

用法

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use aliirfaan\LaravelSimpleForceUpdate\Services\SimpleForceUpdateService;

class TestController extends Controller
{
    public function index(Request $request, SimpleForceUpdateService $simpleForceUpdateService)
    {
        // get all versions by application. You may have multiple applications/mobile apps
        $appName = 'default';
        $platform = null;

        $result = $simpleForceUpdateService->getVersions($appName, $platform);
        dd($result);

        // get version by application and platform.
        $appName = 'default';
        $platform = 'android';

        $result = $simpleForceUpdateService->getVersions($appName, $platform);
        dd($result);

        // get update action based on a candidate version.
        $candidateVersion = '2.0.9'; // this is normally the version currently installed on the client/device
        $appName = 'default';
        $platform = 'android';

        $result = $simpleForceUpdateService->getApplicationCompatibility($candidateVersion, $appName, $platform);
        dd($result);

    }
}

实现自己的强制更新逻辑

要实现自己的强制更新逻辑,创建一个扩展aliirfaan\LaravelSimpleForceUpdate\Contracts\AbstractSimpleForceUpdate类的类

<?php

namespace App\Services;

use aliirfaan\LaravelSimpleForceUpdate\Contracts\AbstractSimpleForceUpdate;

class CustomForceUpdateService extends AbstractSimpleForceUpdate 
{
    /**
     * You can override this function or create another function
     */
    public function getApplicationCompatibility($candidateVersion, $appName = 'default', $platform = 'android')
    {
        // your logic
    }
}

许可

MIT许可(MIT)

版权所有(c)2020

特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人提供此软件以供其使用,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,源于、因或与软件或软件的使用或其他交易有关。