aliirfaan / laravel-simple-force-update
保持应用程序版本为语义版本控制(SemVer)格式。比较本地和当前/发布版本。用于强制更新移动应用程序。
Requires
- naneau/semver: ^0.0.7
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
特此授予任何获得本软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向提供软件的人提供此软件以供其使用,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,源于、因或与软件或软件的使用或其他交易有关。