Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

bwrice's avatar
Level 11

"extra" key in composer.json not carrying over to installed.json

I'm working on a package locally and using it in another application I'm building with repository type of path. However, the "extra" key in the composer.json file from the package isn't carrying over to the installed.json file inside vendor/composer, therefor Laravel's package auto-discovery isn't working.

So far I've tried (inside the application root using the package): composer dump-autoload composer cache-clear Delete entire vendor directory and composer install

Anyone worked on Laravel packages using auto-discovery and come across this issue?

0 likes
6 replies
Nakov's avatar
Nakov
Best Answer
Level 73

@bwrice can you share your package composer.json file? I did work on a package yesterday, tested something with a user on the forum here, and just checked the installed.json file and it contains everything..

btw, you did run composer require "bwrice/your_package @dev" right?

bwrice's avatar
Level 11

@nakov

The package's composer.json:

{
    "name": "bwrice/laravel-job-chain-groups",
    "description": "Chain groups of jobs that can be dispatched asynchronously before the next job in the chain is queued",
    "keywords": [
        "bwrice",
        "laravel-job-chain-groups"
    ],
    "type": "library",
    "license": "MIT",
    "authors": [
        {
            "name": "Brian Rice",
            "email": "[email protected]",
            "role": "Developer"
        }
    ],
    "require": {
        "php": "^7.2",
        "illuminate/support": "^6.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^8.5",
        "orchestra/testbench": "^4.0"
    },
    "autoload": {
        "psr-4": {
            "Bwrice\LaravelJobChainGroups\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Bwrice\LaravelJobChainGroups\Tests\": "tests"
        }
    },
    "scripts": {
        "test": "vendor/bin/phpunit",
        "test-coverage": "vendor/bin/phpunit --coverage-html coverage"

    },
    "config": {
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "providers": [
                "Bwrice\LaravelJobChainGroups\JobChainGroupsServiceProvider"
            ],
            "aliases": {
                "LaravelJobChainGroups": "Bwrice\LaravelJobChainGroups\JobChainGroupsFacade"
            }
        }
    }
}

The application using it:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": "^7.3",
        "ext-json": "*",
        "bwrice/laravel-job-chain-groups": "dev-master",
        "doctrine/dbal": "^2.9",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "^6.3",
        "laravel/framework": "^6.0",
        "laravel/horizon": "^3.2",
        "laravel/nova": "*",
        "laravel/passport": "^7.0",
        "laravel/socialite": "^4.0",
        "laravel/telescope": "^2.0",
        "laravel/tinker": "^1.0",
        "markrogoyski/math-php": "0.*",
        "spatie/enum": "^2.1",
        "spatie/laravel-event-sourcing": "^1.0",
        "spatie/laravel-permission": "^3.0",
        "spatie/laravel-query-builder": "^2.0",
        "spatie/laravel-sluggable": "^2.1"
    },
    "require-dev": {
        "barryvdh/laravel-ide-helper": "^2.6",
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "laravel/dusk": "^5.5",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^2.0",
        "phploc/phploc": "^5.0",
        "phpunit/phpunit": "^7.0"
    },
    "repositories": [
        {
            "type": "path",
            "url": "./nova"
        },
        {
            "type": "path",
            "url": "../laravel-job-chain-groups"
        }
    ],
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\": "app/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\": "tests/"
        }
    },
    "extra": {
        "laravel": {
            "dont-discover": [
            ]
        }
    },
    "scripts": {
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ],
        "post-autoload-dump": [
            "Illuminate\Foundation\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}
Nakov's avatar

@bwrice hm, all seems correct to me.. Try rebuilding the cache and the discovery of the packages using:

php artisan package:discover

in your application root.

btw, make sure that you are running a recent composer version as well by running composer self-update.

bwrice's avatar
Level 11

@nakov

Clearing composer cache didn't directly work, but removing it from composer.json, running composer update, and then adding it back and running composer update again seemed to fix it.

Please or to participate in this conversation.