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

Hidev Composer Laravel Package

hiqdev/hidev-composer

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Setup

  1. Installation:

    composer require hiqdev/hidev-composer
    

    Add to your composer.json under extra:

    "hidev": {
        "composer": {
            "type": "library",
            "name": "vendor/package-name"
        }
    }
    
  2. HiDev Integration: Ensure you have HiDev installed globally or locally. The plugin bridges HiDev’s code generation with Composer workflows.

  3. First Use Case: Run HiDev’s composer controller to generate/update composer.json:

    hidev composer:generate
    

    This populates the file with HiDev-specific configurations (e.g., type, name, autoload).


Implementation Patterns

Workflows

  1. Dynamic composer.json Generation: Use HiDev’s composer:generate to auto-populate fields like name, version, and autoload from your project’s metadata (e.g., hidev-config.yml).

    # hidev-config.yml
    name: my-laravel-package
    version: 1.0.0
    
  2. Integration with Laravel:

    • Autoloading: Leverage HiDev’s autoload generation to sync with Laravel’s composer.json:
      hidev composer:update-autoload
      
    • Packagist Badges: Use markdownBadges (from v0.2.0+) to auto-generate Packagist shields in README.md:
      hidev composer:add-badges
      
  3. CI/CD Pipelines: Trigger composer install/update via HiDev’s controllers in your CI (e.g., GitHub Actions):

    # .github/workflows/ci.yml
    - name: Update Composer
      run: hidev composer:update
    

Laravel-Specific Tips

  • Service Providers: Use HiDev to generate composer.json for Laravel packages, then publish via vendor/bin/hidev composer:publish.
  • Custom Configs: Extend hidev-config.yml to include Laravel-specific keys (e.g., extra.laravel):
    extra:
      laravel:
        providers: ["App\Providers\MyServiceProvider"]
    

Gotchas and Tips

Pitfalls

  1. Autoload Conflicts:

    • The plugin disables autoload touching by default (v0.6.1+). Manually run composer dump-autoload if changes aren’t reflected.
    • Fix: Use hidev composer:update-autoload --force (if available) or manually trigger Composer.
  2. Deprecated Keys:

    • @prjdir was renamed to @root in v0.3.6. Update any templates or configs using this variable.
  3. Packagist Issues:

    • If badges fail to render, ensure composer.json has a valid name and version (forced in v0.3.3+).
    • Debug: Run hidev composer:validate to check Packagist compatibility.

Debugging

  • Logs: Enable HiDev’s verbose mode for Composer actions:
    hidev composer:generate -vvv
    
  • Config Overrides: Use hidev-config.local.yml to override composer.json settings without modifying the main config.

Extension Points

  1. Custom Controllers: Extend HiDev’s Composer controllers (e.g., composer:generate) by creating a custom plugin:

    // config/hidev.php
    'composer' => [
        'controllers' => [
            'namespace' => 'App\HiDev\Controllers',
            'paths' => ['@app/hidev/controllers'],
        ],
    ],
    
  2. Post-Generation Hooks: Use HiDev’s event system to run scripts after composer.json updates:

    # hidev-config.yml
    events:
      after_composer_generate:
        - "php artisan vendor:publish --tag=config"
    
  3. Legacy Compatibility: For older HiDev versions, check the changelog for breaking changes (e.g., composer-config-plugin rewrite in v0.4.0).

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.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor