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

Tags:

Laravel 5