Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Composer Suite Handler Laravel Package

sweetchuck/composer-suite-handler

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Setup

  1. Installation Add the package to your Laravel project via Composer:

    composer require sweetchuck/composer-suite-handler
    

    Register the service provider in config/app.php under providers:

    Sweetchuck\ComposerSuiteHandler\ComposerSuiteHandlerServiceProvider::class,
    
  2. First Use Case Use the package to handle Composer Suite operations programmatically. Example:

    use Sweetchuck\ComposerSuiteHandler\Facades\ComposerSuiteHandler;
    
    // Initialize Composer Suite
    $composerSuite = ComposerSuiteHandler::init();
    
    // Run a basic command (e.g., install dependencies)
    $result = $composerSuite->run('install');
    
  3. Where to Look First

    • Facade: app/ComposerSuiteHandler (if using facades).
    • Service Provider: config/composer-suite.php (if available).
    • Documentation: Check the Composer Suite CLI and Composer Suite for broader context.

Implementation Patterns

Core Workflows

  1. Programmatic Composer Operations Use the handler to execute Composer Suite commands without CLI interaction:

    // Update packages
    $composerSuite->run('update', ['--with-dependencies' => true]);
    
    // Require a package
    $composerSuite->run('require', ['monolog/monolog' => '2.*']);
    
  2. Event-Driven Integration Hook into Composer Suite lifecycle events (if supported) via Laravel events:

    // Example: Listen for post-install events
    event(new ComposerSuiteInstalled($result));
    
  3. Configuration Management Override default Composer Suite behavior via config:

    // config/composer-suite.php (if created)
    return [
        'timeout' => 300,
        'verbose' => env('COMPOSER_VERBOSE', false),
    ];
    
  4. Artisan Command Integration Extend Laravel’s Artisan to wrap Composer Suite commands:

    namespace App\Console\Commands;
    
    use Sweetchuck\ComposerSuiteHandler\Facades\ComposerSuiteHandler;
    use Illuminate\Console\Command;
    
    class UpdateDependencies extends Command
    {
        protected $signature = 'composer:update';
        public function handle()
        {
            $result = ComposerSuiteHandler::run('update');
            $this->info($result['output']);
        }
    }
    

Integration Tips

  • Dependency Management: Use the handler to enforce consistent dependency updates across environments.
  • CI/CD Pipelines: Integrate with GitHub Actions/GitLab CI to automate dependency management:
    # Example GitHub Actions step
    - name: Update Composer Dependencies
      run: php artisan composer:update
    
  • Laravel Mix/Webpack: Trigger Composer Suite operations post-build if needed.

Gotchas and Tips

Pitfalls

  1. No Official Laravel Integration

    • The package lacks Laravel-specific documentation. Assume it’s a low-level wrapper around Composer Suite CLI.
    • Workaround: Treat it as a shell executor and handle output/errors manually.
  2. Error Handling

    • Composer Suite commands may fail silently. Always validate $result:
      if ($result['success']) {
          // Proceed
      } else {
          throw new \RuntimeException($result['error']);
      }
      
  3. Configuration Overrides

    • The package may not respect Laravel’s config/ by default. Explicitly pass config:
      $composerSuite = ComposerSuiteHandler::init(['timeout' => 600]);
      
  4. Dependency Conflicts

    • Running composer require programmatically may conflict with Laravel’s autoloader. Use dump-autoload post-operation:
      $composerSuite->run('dump-autoload');
      

Debugging

  • Verbose Output: Enable debug mode for troubleshooting:
    $composerSuite = ComposerSuiteHandler::init(['verbose' => true]);
    
  • Log Commands: Wrap calls in Laravel’s logging:
    \Log::debug('Running Composer Suite command', ['command' => 'update', 'args' => [...]]);
    

Extension Points

  1. Custom Commands Extend the handler to support domain-specific commands:

    // Example: Add a custom 'audit' command
    $composerSuite->extend('audit', function () {
        return shell_exec('composer audit');
    });
    
  2. Event Listeners Dispatch Laravel events post-operation:

    event(new ComposerOperationCompleted(
        $result,
        $command
    ));
    
  3. Testing Mock the handler in tests:

    $this->mock(Sweetchuck\ComposerSuiteHandler\Facades\ComposerSuiteHandler::class)
         ->shouldReceive('run')
         ->once()
         ->andReturn(['success' => true]);
    
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator