denisok94/helper-composer
Helper Composer is a small utility package that helps streamline Composer workflows in PHP projects. It provides helper tooling for managing dependencies and Composer-related tasks, aiming to make setup and maintenance quicker and more convenient.
Install the Plugin: Add the package to your project via Composer:
composer require --dev denisok94/helper-composer
--dev initially to avoid polluting production dependencies unless explicitly needed.Trigger Initial Setup: Run Composer to let the plugin process dependencies:
composer update
denisok94/symfony-export, denisok94/yii2-widgets) as defined in its releases.First Use Case:
denisok94/symfony-export for data export functionality without manually requiring it:
use Denisok94\SymfonyExport\Exporter;
$exporter = new Exporter();
$exporter->exportToCsv($data, 'output.csv');
Where to Look First:
0.0.9 adds symfony-export).extra or scripts sections in your composer.json for hooks or configurations.composer.json or runs post-install scripts).Bundled Dependency Workflow:
composer require denisok94/helper-composer
composer update
symfony-helper, yii-metatag) are added to composer.json automatically.Laravel Integration:
SymfonyHelperServiceProvider), register them in config/app.php:
'providers' => [
// ...
Denisok94\SymfonyHelper\SymfonyHelperServiceProvider::class,
],
use Denisok94\SymfonyExport\Facades\Export;
$data = Export::toCsv($collection);
Custom Composer Scripts:
"scripts": {
"post-install-cmd": [
"denisok94-helper-composer:post-install"
]
}
composer.json:
"scripts": {
"post-root-package-install": [
"@php artisan config:clear"
]
}
Conditional Loading:
conflict or replace to manage version constraints:
"conflict": {
"denisok94/symfony-export": ">=2.0.0"
}
yii-metatag) conditionally:
composer require --dev denisok94/helper-composer
Multi-Framework Projects:
composer require denisok94/helper-composer --working-dir=./laravel-app
composer why-not <package> to debug dependency resolution issues.composer.json to avoid drift:
"require": {
"denisok94/symfony-export": "1.0.0"
}
- run: composer validate && composer install --prefer-dist --no-interaction
composer install --prefer-source to debug the plugin’s behavior during development.Dependency Conflicts:
composer why <package> to identify conflicts and manually pin versions:
composer why symfony/console
composer.json:
"replace": {
"symfony/console": "6.3.0"
}
Plugin-Specific Issues:
composer update fails, check the plugin’s logs or source code for errors. Use --verbose:
composer update --verbose
Version Locking:
composer.json:
"require": {
"denisok94/helper-composer": "0.0.9",
"denisok94/symfony-export": "1.0.0"
}
Performance Overhead:
composer install if it performs heavy operations (e.g., cloning repositories).time composer install --optimize-autoloader
Lack of Documentation:
Plugin.php in the repository).Composer Debugging:
--dry-run to preview changes:
composer update --dry-run
composer.lock file for unexpected changes.Plugin-Specific Logs:
composer --verbose update
denisok94-helper-composer: ...).Laravel-Specific Issues:
php artisan config:clear
php artisan cache:clear
Composer JSON Modifications:
composer.json. To prevent this, use:
"config": {
"allow-plugins": {
"denisok94/helper-composer": false
}
}
Post-Install Scripts:
post-install-cmd), ensure they are compatible with Laravel’s environment:
"scripts": {
"post-install-cmd": [
"@php artisan optimize:clear"
]
}
Autoloading:
composer dump-autoload --optimize
composer.json:
"autoload": {
"psr-4": {
"Denisok94\\SymfonyExport\\": "vendor/denisok94/symfony-export/src/"
}
}
// In a custom plugin class
public function onPostInstall(PostInstallEvent $event) {
if ($event->getOperation()->isDevMode()) {
Artisan::call
How can I help you explore Laravel packages today?