2017-02-04 1 views
0

В Laravel 5 Я хотел бы изменить структуру каталогов по умолчанию, поэтому путь для app Я хочу переместить его на что-то вроде api, как я могу это сделать ?Как изменить путь к api в структуре структуры Laravel 5

Пример, вместо этой структуры:

. 
├── app 
├── bootstrap 
├── config 
├── database 
├── public 
├── resources 
├── storage 
├── tests 
└── vendor 

Я хочу это:

. 
├── api 
├── bootstrap 
├── config 
├── database 
├── public 
├── resources 
├── storage 
├── tests 
└── vendor 

В моей композитор я изменил пространство имен, как это так, следующим образом этот вопрос: How to change app folder name in laravel 5:

"autoload": { 
    "classmap": [ 
     "database" 
    ], 
    "psr-4": { 
     "Api\\": "api/" 
    } 
}, 

Но я получаю ошибку:

[RuntimeException]      
    Unable to detect application namespace. 

ответ

0

Ну, через некоторое время я нашел способ сделать это, после того, как осмотреться другие ответы like this я понял, что app путь зашиты в Application::path()see the source

Тогда я мог бы заставить его работать на переопределение Application::path() метод:

class Application extends \Illuminate\Foundation\Application 
{ 
    /** 
    * Overrides the path to the application "app" directory. 
    * 
    * @return string 
    */ 
    public function path() 
    { 
     return $this->basePath.DIRECTORY_SEPARATOR.'api'; 
    } 
} 

Затем обновите bootstrap/app.php:

// Overrides the PATH to use api instead of app 
$app = new Api\Application(
    realpath(__DIR__.'/../') 
); 

Теперь может иметь следующую структуру:

. 
├── api 
├── bootstrap 
├── config 
├── database 
├── public 
├── resources 
├── storage 
├── tests 
└── vendor 

Аналогичный метод был найден в https://mattstauffer.co/blog/extending-laravels-application

Смежные вопросы