Trying to develop a package locally within a Laravel application. In my root laravel application I have a packages directory, structure below
packages
└── deco-network-api
├── composer.json
├── src
│ └── BananaMoonClothing
│ └── DecoNetworkApiClient
│ ├── DecoNetworkApiClient.php
│ └── DecoNetworkApiServiceProvider.php
└── vendor
├── autoload.php
└── composer
├── ClassLoader.php
├── LICENSE
├── autoload_classmap.php
├── autoload_namespaces.php
├── autoload_psr4.php
├── autoload_real.php
├── autoload_static.php
└── platform_check.php
7 directories, 12 files
composer.json of the package
{
"name": "banana-moon-clothing/deco-network-api",
...
"autoload": {
"psr-4": {
"BananaMoonClothing\DecoNetworkApiClient\": "src/"
}
},
"extra": {
"laravel": {
"providers": [
"BananaMoonClothing\DecoNetworkApiClient\DecoNetworkApiServiceProvider"
]
}
},
...
}
Snippet from packages/deco-network-api/src/BananaMoonClothing/DecoNetworkApiClient/DecoNetworkApiClient.php
<?php
namespace BananaMoonClothingDecoNetworkApiClient;
...
class DecoNetworkApiClient
{
...
}
Snippet from packages/deco-network-api/src/BananaMoonClothing/DecoNetworkApiClient/DecoNetworkApiServiceProvider.php
<?php
namespace BananaMoonClothingDecoNetworkApiClient;
...
class DecoNetworkApiServiceProvider extends ServiceProvider
{
...
}
I’m requiring the package in my laravel Application, as below
{
"name": "laravel/laravel",
...
"require": {
...
"banana-moon-clothing/deco-network-api": "^1.0.0"
},
...
"repositories": [
{
"type": "path",
"url": "./packages/deco-network-api"
}
],
...
}
When ever I run composer update from the larave application I get the following
...
Class BananaMoonClothingDecoNetworkApiClientDecoNetworkApiServiceProvider located in ./vendor/banana-moon-clothing/deco-network-api/src/BananaMoonClothing/DecoNetworkApiClient/DecoNetworkApiServiceProvider.php does not comply with psr-4 autoloading standard. Skipping.
Class BananaMoonClothingDecoNetworkApiClientDecoNetworkApiClient located in ./vendor/banana-moon-clothing/deco-network-api/src/BananaMoonClothing/DecoNetworkApiClient/DecoNetworkApiClient.php does not comply with psr-4 autoloading standard. Skipping.
> IlluminateFoundationComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
In ProviderRepository.php line 206:
Class "BananaMoonClothingDecoNetworkApiClientDecoNetworkApiServiceProvider" not found
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
I can’t for the life of me see what the issue might be, I think I’ve just done something silly.