a9f/fractor-extension-installer
Install the Package Add the package to your Laravel project via Composer:
composer require --dev a9f/fractor-extension-installer
Note: Avoid using --no-scripts as the installer relies on Composer script events.
Verify Composer Scripts
Ensure your composer.json includes the post-autoload-dump script (default for Fractor extensions):
{
"scripts": {
"post-autoload-dump": [
"Fractor\\ExtensionInstaller\\Composer\\ScriptHandler::installExtensions"
]
}
}
First Use Case: Installing a Fractor Extension
Require a Fractor extension (e.g., vendor/fractor-extension):
composer require --dev vendor/fractor-extension
The installer will automatically detect and install the extension during composer install or composer update.
Extension Development
type to fractor-extension in the extension’s composer.json:
{
"type": "fractor-extension",
"extra": {
"fractor": {
"includes": ["config/*.php", "src/**/*.php"]
}
}
}
includes in the extra.fractor section to specify files/directories to publish.Laravel Project Setup
fractor.php config (if applicable) or leverage its functionality via service providers/services.php artisan vendor:publish --provider="Vendor\\FractorExtension\\FractorExtensionServiceProvider"
Automated Extension Management
composer update vendor/fractor-extension
config/app.php:
'providers' => [
// ...
Vendor\FractorExtension\FractorExtensionServiceProvider::class,
],
vendor:publish to publish extension configs:
php artisan vendor:publish --tag="fractor-extension-config"
Composer Scripts Disabled
composer install --no-scripts or composer update --no-scripts will skip extension installation.--no-scripts or manually trigger the script:
composer install && composer run-script post-autoload-dump
Missing extra.fractor Configuration
extra.fractor.includes may not publish files correctly.composer.json includes the fractor key with includes.Extension Dependencies
composer validate to check for dependency issues.COMPOSER_DEBUG=1 composer install
stderr; redirect to a file for debugging:
composer install 2> composer-debug.log
composer.json:
{
"scripts": {
"post-install-cmd": [
"Fractor\\ExtensionInstaller\\Composer\\ScriptHandler::installExtensions"
]
}
}
minimum-stability or conflict constraints to control extension installation contexts.fractor:extension-command).php artisan config:clear
How can I help you explore Laravel packages today?