irfan-chowdhury / version-elevate
此包将通知买家关于新版本的信息,并且可以升级他们当前的应用程序到新版本。
v1.0.2
2023-11-10 16:55 UTC
Requires
- php: >=8.1
- laravel/framework: >=9.0
Requires (Dev)
- laravel/pint: dev-main
- orchestra/testbench: 8.x-dev
- pestphp/pest: 1.x-dev
- phpunit/phpunit: ^9.0
README
版本升级
关于
在软件开发过程中,经常出现现有应用程序已经大量被客户使用,需要更新以引入新功能或修复意外错误的情况。在这两种情况下,一个可靠的系统对于有效地通知您的现有客户基础、鼓励他们无缝过渡到最新版本或及时应用错误修复至关重要。这个过程类似于各种软件平台所采用的策略。
通过将此功能无缝集成到您的应用程序中,您可以精确地安排所需的结果。在设想此集成时,请考虑创新与稳定性之间的微妙平衡。一方面,新功能增强了您的应用程序的实用性;另一方面,修复错误展示了您对质量和用户满意的承诺。
要求
"require": { "php": ">= 8.0", "laravel/framework": ">= 9.0" },
安装
您可以通过composer安装此包
composer require irfan-chowdhury/version-elevate
配置
完成安装后,您可以使用以下命令发布:
php artisan vendor:publish --provider="IrfanChowdhury\VersionElevate\VersionElevateServiceProvider"
在 config/app.php
中的服务提供者注册中添加 providers 数组 -
'providers' => [ /* * Package Service Providers... */ IrfanChowdhury\VersionElevate\VersionElevateServiceProvider::class, ],
环境变量 (.ENV)
# DEMO | DEVELOPER | CLIENT PRODUCT_MODE=DEMO VERSION=1.2.3 TARGET_URL="https://your_domain.com"
这里我们使用了 DEMO,这表示当前在线的服务器上的原始应用程序。
注意
(i) PRODUCT_MODE
- 开发者:供开发者访问。
- 客户:对于生产,我的意思是当客户使用您的应用程序并且他们可以收到通知和更新时。
- DEMO:客户的产物需要连接到主服务器以从主服务器传输文件和其他内容到客户服务器。因此应该有一个用于控制的主服务器。
(ii) 对于版本升级 - 您应该遵循以下这些点进行 Demo/主应用程序的版本升级
- 客户版本号 >= 最小所需版本
- 在一般设置中,最新版本升级应该被 选中
- 产品模式必须设置为 DEMO
- 演示版本号 > 客户版本号
开发者部分
(此部分对客户不可见)
一般设置
- 访问url: your_domain_name.com/developer-section
- 产品模式应该是 开发者,您必须从
.env
文件中设置它和控制。 - 需要一个版本号。
- 需要一个最小版本号。假设您有很多版本
v1.0.0
到v5.0.0
。在某些情况下,旧版本可能不支持最新版本的功能。假设任何版本是v3.0.0
,那么它将轻松迁移到最新版本,而不会有任何麻烦。这时它应该是所需的最小版本。 - 最新版本升级:当发布新版本时,您必须启用此功能,以便旧客户收到通知并可以进行更新。
- 最新版本数据库迁移:如果需要数据库迁移,您还必须启用此功能。
- 版本升级URL:在您的服务器上,您必须创建一个目录,并将所有必要的文件导入其中,以便从这里传输到客户服务器。
版本升级设置
- 在 文件 部分中,您必须输入要从一个主服务器传输到客户服务器的文件名。
- 在日志部分,客户可以查看变更日志的详细信息。
- 在简短备注部分,如果需要,您可以为客户设置重要的备注。
客户部分
- 转到以下url访问:[your_domain_name.com/version-elevate-dashboard]() - 如果有新版本发布,客户将在仪表板中收到通知消息。他们必须点击点击此处选项以查看详细信息页面。版本升级页面
- 客户将看到所有详细信息,如版本号、备注和变更日志。
- 点击升级按钮后,将自动进行升级过程,然后您将看到成功消息,新版本号将自动设置在您的应用程序中。
一些挑战
- 如果出现任何问题,客户必须联系支持团队。
访问
Packagist : https://packagist.org.cn/packages/irfan-chowdhury/version-elevate
致谢
- 结构遵循自 - spatie/package-skeleton-laravel
- Laravel 测试助手包开发: testbench
- PHP 测试框架: PEST
- 编码风格: Laravel Pint