esbenp / larapi

An API-friendly fork of Laravel. Authentication, error handling, resource filtering, sorting, pagination and much more included
http://esbenp.github.io/2016/04/11/modern-rest-api-laravel-part-0/
MIT License
406 stars 114 forks source link

Question : Can we still use all artisan command? #10

Open sh4rkb1t3 opened 7 years ago

sh4rkb1t3 commented 7 years ago

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.

gruz commented 7 years ago

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/"
        }
Jasperrr91 commented 7 years ago

@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.

gruz commented 7 years ago

@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.

GitIDHere commented 6 years ago

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.

Amersfoj commented 5 years ago

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!