Laravel Installer is a complete package designed to simplify the installation process for Laravel projects. This installer handles system requirement checks, environment configuration, database setup, and purchase code validation.
- System Requirements Check: Automatically verifies PHP version and required extensions.
- Environment File Setup: Helps create and configure the
.env
file. - Database Configuration: Offers the option to run migrations, seeders, or import an SQL dump.
- Purchase Code Validation: Built-in validation for purchase codes.
- User-Friendly Interface: A guided step-by-step installation process with a simple interface.
To install the package, run the following command:
composer require jmrashed/laravel-installer
Then, publish the configuration file:
php artisan vendor:publish --provider="Jmrashed\LaravelInstaller\Providers\LaravelInstallerServiceProvider"
php artisan vendor:publish --tag=installer-config
After installation, run the installer using:
php artisan installer:run
The installer will guide you through these steps:
- System Requirements Check: Ensures the necessary PHP version and extensions are installed.
- Environment File Setup: Prompts for database credentials and generates the
.env
file. - Database Setup: Choose to run migrations and seeders or import a SQL dump.
- Purchase Code Validation: If enabled, the user is required to enter their purchase code.
- Completion: Confirms successful installation.
sample api response from your existing website
{
"message": "Welcome to the Envato Purchase Validation API",
"account1": {
"token": "fsHuTBwXZTlEqZYQacniBeNZFCrT01eZ"
},
"account2": {
"token": "aGPUug8SeQagLaSDZ3LXdKQ8x0hHNtlc"
},
"validation": {
"url": "https://api.envato.com/v3/market/author/sale"
}
}
To get barrier token update the API endpoint
$envatoApiTokenUrl = 'http://your-domain.com/api/get-envato-barrier-token';
To Store verification data to your application update the API endpoint
$envatoApiStoreUrl = 'http://your-domain.com/api/store-envato-verification-response';
Sample response
{
"amount": "32.06",
"sold_at": "2024-01-28T15:21:32+11:00",
"license": "Regular License",
"support_amount": "0.00",
"supported_until": null,
"item": {
"id": 1234567890,
"name": "product Title",
"number_of_sales": 169,
"author_username": "author_username",
"author_url": "https://codecanyon.net/user/author_username",
"url": "https://codecanyon.net/item/product/34567890",
"site": "codecanyon.net",
"classification": "mobile/flutter",
"classification_url": "https://codecanyon.net/category/mobile/flutter",
"price_cents": 11900,
"author_image": "https://s3.envato.com/files/396614067/80x80.jpg",
"summary": "Software Version: Flutter 2.x, Flutter 1.x, Other",
"published_at": "2022-06-14T01:38:25+10:00",
"trending": false
},
"buyer": "keosovannboravann",
"purchase_count": 1
}
Hereβs a simplified structure of the project directories and key files:
- π src/
- π Config/
- π installer.php
- π Controllers/
- π DatabaseController.php
- π EnvironmentController.php
- π Events/
- π EnvironmentSaved.php
- π LaravelInstallerFinished.php
- π Helpers/
- π DatabaseManager.php
- π EnvironmentManager.php
- π Middleware/
- π canInstall.php
- π canUpdate.php
- π Providers/
- π LaravelInstallerServiceProvider.php
- π Routes/
- π web.php
- π Views/
- π layouts/
- π master-update.blade.php
- π master.blade.php
- π update/
- π finished.blade.php
- π overview.blade.php
- π environment-classic.blade.php
- π environment-wizard.blade.php
- π assets/
- π css/
- π style.css
- π style.css.map
- π fonts/
- π FontAwesome.otf
- π fontawesome-webfont.eot
- π img/
- π favicon/
- π favicon-16x16.png
- π favicon-32x32.png
- π background.png
- π pattern.png
- π LICENSE
- π README.md
The published configuration file can be found at:
config/installer.php
This allows you to customize checks and paths, such as setting the SQL dump path for import during installation.
If your system requires purchase code validation, you can customize the validation logic in the validatePurchaseCode
function. Hereβs an example:
if (!$this->validatePurchaseCode($code)) {
throw new Exception('Invalid purchase code.');
}
Welcome Screen | Database Setup | Purchase Code Validation |
---|---|---|
To ensure the Laravel Installer works as expected, your environment must meet the following requirements:
- PHP: 8.0 or higher
- Laravel: 9.0 or higher
- PHP Extensions:
mbstring
openssl
pdo
tokenizer
xml
ctype
json
php artisan vendor:publish --tag=laravelinstaller --force
Contributions are welcome! If you want to contribute:
- Fork the repository.
- Create a new feature branch:
git checkout -b feature-branch
. - Commit your changes:
git commit -m 'Add new feature'
. - Push to the branch:
git push origin feature-branch
. - Open a pull request on GitHub.
This package is licensed under the MIT license.
For support, feel free to open an issue on the GitHub repository or contact us directly.