In the context of software development, situations often arise where existing applications, already utilized by a substantial client base, require updates either to introduce novel features or rectify unexpected bugs. In both scenarios, a reliable system is essential to effectively notify your established client base, encouraging them to seamlessly transition to the latest version or promptly apply bug fixes. This process resembles the strategies employed by various software platforms.
By seamlessly integrating this feature into your application, you can precisely orchestrate the desired outcome. When envisioning this integration, consider the intricate balance between innovation and stability. On one hand, new features enhance your application's utility; on the other hand, addressing bugs showcases a commitment to quality and user satisfaction.
"require": {
"php": ">= 8.0",
"laravel/framework": ">= 9.0"
},
You can install the package via composer:
composer require irfan-chowdhury/version-elevate
After completing the installation, you can publish with:
php artisan vendor:publish --provider="IrfanChowdhury\VersionElevate\VersionElevateServiceProvider"
Service Provider Registration In config/app.php
, add in providers array -
'providers' => [
/*
* Package Service Providers...
*/
IrfanChowdhury\VersionElevate\VersionElevateServiceProvider::class,
],
# DEMO | DEVELOPER | CLIENT
PRODUCT_MODE=DEMO
VERSION=1.2.3
TARGET_URL="https://your_domain.com"
Here we used DEMO which indicate the original app which is now online server.
- DEVELOPER : To access for developers.
- CLIENT : For production I mean when the clients use your application and they can get notification and update.
- DEMO : Client's product have to connect with a main server to transfer files and others from main server to client server. So there should be a primary server for control.
- Client Version Number >= Minimum Required Version
- In general setting, Latest Version Upgrade should be Checked
- Product Mode have to set DEMO
- Demo Version Number > Client Version Number
- Goto the url to access: your_domain_name.com/developer-section
- Product mode should be DEVELOPER and you have to set it and control from
.env
file. - A version number has required.
- A minimum version number has been required. Suppose you have a lot of versions
v1.0.0
tov5.0.0
. In some case old version can not support with latest version feaures. Let if any version isv3.0.0
then it will migrate to latest version easily without any hassle. This time it should be minimum required version. - Latest Version Upgrade : You have to enable this when a new version will be released so that old clients get notification and can update.
- Latest Version DB Migrate : If need to DB migrate, then you have to enable this also.
- Version Upgrade URL : In your server, you have to create a directory and all necessary files have to import there so that the files from here can transfer into client server.
- In Files section you have to input file name which file you want to transfer from your main server to client server.
- In Logs section clients can see the change log details.
- In Short Note section, you can set a important note for the clients if need.
- Client will see all details such version number, note and change log details.
- After clicking Upgrade button, it will upgrade process automatically then will see a success message and new version number will setup in your application automatically.
Some Challenge :
- If any issues arise, then clients have to contact with the support team.
Packagist : https://packagist.org/packages/irfan-chowdhury/version-elevate
- Structure follow from - spatie/package-skeleton-laravel
- Laravel Testing Helper for Packages Development: testbench
- PHP Testing Framework : PEST
- Coding Style : Laravel Pint