Weave Code
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

Symfony System Resources Bundle Laravel Package

dmstr/symfony-system-resources-bundle

View on GitHub
Deep Wiki
Context7

Getting Started

  1. Check PHP Version: Ensure your project meets the new minimum requirement of PHP 8.4 (previously lower). Run php -v to verify.
  2. Installation: Require the package via Composer:
    composer require vendor/package-name
    
  3. First Use Case: Register the package service provider in config/app.php under providers:
    Vendor\PackageName\PackageServiceProvider::class,
    
  4. Documentation: Review the updated CLAUDE.md (if provided) for system-level documentation. OpenAPI tags are now under 'System'—check API specs if applicable.

Implementation Patterns

Core Workflows

  • Messenger Integration: Use MessengerMessage for queue-based workflows. Example:
    use Vendor\PackageName\Messaging\MessengerMessage;
    
    $message = new MessengerMessage('event_name', ['key' => 'value']);
    app(\Illuminate\Contracts\Queue\Queue::class)->push($message);
    
  • Doctrine Migrations: Leverage DoctrineMigrationVersion for versioned database migrations (if applicable). Example:
    use Vendor\PackageName\Database\DoctrineMigrationVersion;
    
    $version = new DoctrineMigrationVersion('20240101000000');
    $version->up(); // Apply migration logic
    

Integration Tips

  • Service Binding: Bind custom interfaces to the package’s classes in register():
    $this->app->bind(
        \Vendor\PackageName\Contracts\MigrationInterface::class,
        \Vendor\PackageName\Database\DoctrineMigrationVersion::class
    );
    
  • Middleware: Extend the package’s middleware (if available) by publishing config:
    php artisan vendor:publish --provider="Vendor\PackageName\PackageServiceProvider" --tag="config"
    

Gotchas and Tips

Breaking Changes

  • PHP 8.4 Requirement: Upgrade PHP or use a version manager (e.g., phpbrew). Key changes include:
    • Named arguments in function calls.
    • Deprecated create_function() removed.
    • Verify third-party dependencies for compatibility.

Debugging

  • Unit Tests: The package now includes tests for MessengerMessage and DoctrineMigrationVersion. Use these as a reference for edge cases:
    composer test
    
  • CI Workflow: The package’s GitHub Actions workflow is now public. Check .github/workflows/ for setup inspiration.

Extension Points

  • OpenAPI Tags: Updated to 'System'. If you use Swagger/OpenAPI, update your schema:
    tags:
      - name: System
        description: Package-managed endpoints
    
  • CLAUDE.md: Likely contains system architecture details. Cross-reference with README.md for implementation notes.

Performance

  • Doctrine Migrations: If using, ensure your migrations table is optimized for version tracking. Example schema:
    Schema::create('migrations', function (Blueprint $table) {
        $table->id();
        $table->string('version')->unique();
        $table->timestamp('created_at')->useCurrent();
    });
    
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.
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
develia/geo-bundle
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle
agtp/agtp-php
agtp/mod-php
splash/sonata-admin
splash/metadata
splash/openapi