larapi icon indicating copy to clipboard operation
larapi copied to clipboard

Question : Can we still use all artisan command?

Open sh4rkb1t3 opened this issue 8 years ago • 5 comments

When I tried make model from artisan command : php artisan make:model SomeModel

then I got an error on console : [RuntimeException] Unable to detect application namespace.

sh4rkb1t3 avatar Apr 21 '17 08:04 sh4rkb1t3

Any solution?

I assume since the folder structure is changed there should be some additional guidelines to artisan where to create the model.

P.S. I've added "App\\": "app/" to composer.json and managed to create a model in app folder. Surely this breakes the idea of the reworked folder structure.

        "psr-4": {
            "App\\": "app/",
            "Api\\": "api/",
            "Infrastructure\\": "infrastructure/"
        }

gruz avatar Apr 24 '17 22:04 gruz

@esbenp seems to have abandoned the project. The idea of the project is really cool but there are too many gaps. Artisan no longer working, where do users put other API's? I assume a new folder but how does one connect between different models then? Can one still define Eloquent relations if models are separated from each other? Etc.

Jasperrr91 avatar Jun 13 '17 02:06 Jasperrr91

@Jasperrr91 I've started form the project (having very low experience with Laravel) but little by little move to pure laravel approaches. The Api/Infrastructure folder structure approach breaks artisan. I renamed Infrastructure folder back to App (so app folder it keeps general logic) and use api folder as intended by @esbenp . This way artisan works.

If you are familiar with Laravel the project is a good starting point since you can easily workaround glitches. But it's a bad point to learn due to the glitches.

If I knew about the problems together with hm... not support, abandoned development, I'd not start from it. But it's to late for me.

So resuming. To make artisan work change composer.json

        "psr-4": {
            "App\\": "app/",
            "Api\\": "api/",
        }

Rename infrastrucuture folder to app folder

Change namespace/use paths in all files to respect new app folder.

Another way is just to keep app folder for newly generated by artisan files but not to use the folder.

I assume a new folder but how does one connect between different models then? Can one still define Eloquent relations if models are separated from each other? Etc.

As far as I understand this should not be a problem is you add proper use directives.

gruz avatar Jun 13 '17 07:06 gruz

Same here. I only just stumbled upon this issue after I started my project. Artisan commands such as make:model and app:name are broken with the "Unable to detect application namespace." exception being thrown.

GitIDHere avatar Nov 27 '17 16:11 GitIDHere

I also had App (capitalized) as namespace root but that didn't work. On the frontend the site worked fine but some artisan commands like make:controller and others gave the Unable to detected namespace error. Changing that line in Composer back to "App\\": "app/", and it worked!

Amersfoj avatar Jan 18 '19 16:01 Amersfoj