Laravel 5 Unable to detect application namespace
Okay, I solved it. What I did to solve this:
composer update
gave me following error:
[Seld\JsonLint\ParsingException]
"./composer.json" does not contain valid JSON
Parse error on line 9:
"require-dev
---------------------^
Expected: 'STRING' - It appears you have an extra trailing comma
I opened composer.json
and there was one extra comma in last line:
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
}
Removed the comma so it looked like this:
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*"
}
And problem was gone.
laravel version: 5.8.3
[One more Reason]: default app path in composer.json is modified
the default setup looks like this
"psr-4": {
"App\\": "app/"
},
If its modified to say,
"psr-4": {
"Core\\": "app/Core/"
},
the make
commands with artisan wont work, and a few other things
the reason is https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Application.php#L296
app is static in the path, and here is the where the exception is thrown https://github.com/laravel/framework/blob/5.3/src/Illuminate/Foundation/Application.php#L1143
This default behavior can be modified in bootstrap/app.php
Here is my solution [reference: https://laracasts.com/discuss/channels/general-discussion/how-i-can-change-laravel-directory-structure?page=1]
Solution:
Core/Application.php
<?php
namespace Core;
use Illuminate\Foundation\Application as IlluminateApplication;
class Application extends IlluminateApplication
{
protected $appPath = __DIR__;
}
bootstap/app.php
$app = new \Core\Application(
$_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
);
Usually, this means that your composer.json file contains invalid JSON. Usually an extra comma at the end of an array.
Try running this to tell you exactly where the issue is:
composer diagnose