Поиск…


Изменить каталог приложений по умолчанию

Существуют случаи использования, когда вы можете переименовать каталог приложений в другое. В Laravel4 вы можете просто изменить запись в config, вот один из способов сделать это в Laravel5.

В этом примере мы переименуем каталог app в src .

Класс переопределения приложений

Каталоги имя app является зашито в класс основного приложения, поэтому он должен быть перегружен. Создайте новый файл Application.php . Я предпочитаю держать мой в каталоге src (тот, который мы будем заменять приложением), но вы можете разместить его в другом месте.

Вот как должен выглядеть переопределенный класс. Если вы хотите другое имя, просто измените строку src на другое.

namespace App;

class Application extends \Illuminate\Foundation\Application
{
    /**
     * @inheritdoc
     */
    public function path($path = '')
    {
        return $this->basePath . DIRECTORY_SEPARATOR . 'src' . ($path ? DIRECTORY_SEPARATOR . $path : $path);
    }
}

Сохраните файл. Мы закончили с этим.

Вызов нового класса

Откройте bootstrap/app.php и найдите

$app = new Illuminate\Foundation\Application(
    realpath(__DIR__.'/../')
);

Мы заменим его этим

$app = new App\Application(
    realpath(__DIR__.'/../')
);

Композитор

Откройте файл composer.json и измените автозагрузку в соответствии с вашим новым местоположением

"psr-4": {
    "App\\": "src/"
}

И, наконец, в командной строке запустите composer dump-autoload и ваше приложение должно быть отправлено из каталога src .

Измените каталог контроллеров

если мы хотим изменить каталог Controllers нам нужно:

  1. Переместите и / или переименуйте каталог Controllers по умолчанию, где мы хотим. Например, из app/Http/Controllers в app/Controllers
  1. Обновите все пространства имен файлов внутри папки Controllers , чтобы они придерживались нового пути, учитывая специфику PSR-4.
  1. Измените пространство имен, которое применяется к файлу routes.php , отредактировав app\Providers\RouteServiceProvider.php и изменив это:
protected $namespace = 'App\Http\Controllers';

к этому:

protected $namespace = 'App\Controllers';


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow