Sök…


Byt standardkatalog för app

Det finns användningsfall när du kanske vill byta namn på appkatalogen till något annat. I Laravel4 kan du bara ändra en konfigurationspost, här är ett sätt att göra det i Laravel5.

I det här exemplet byter vi namn på app till src .

Överstyr ansökningsklass

Katalogens namn- app är hårdkodad i den centrala applikationsklassen, så den måste åsidosättas. Skapa en ny fil Application.php . Jag föredrar att hålla mina i src katalogen (den vi kommer att ersätta appen med), men du kan placera den någon annanstans.

Så här ska den åsidosatta klassen se ut. Om du vill ha ett annat namn, ändra bara strängen src till något annat.

namespace App;

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

Spara filen. Vi är klara med det.

Ring den nya klassen

Öppna upp bootstrap/app.php och hitta

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

Vi kommer att ersätta det med det här

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

Kompositör

Öppna din composer.json fil och ändra autoladning så att den matchar din nya plats

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

Och slutligen, i kommandoraden kör composer dump-autoload och din app ska visas från src katalogen.

Ändra registerkatalogen

om vi vill ändra katalogen Controllers behöver vi:

  1. Flytta och / eller byta namn på standard Controllers katalog där vi vill ha det. Till exempel från app/Http/Controllers till app/Controllers
  1. Uppdatera alla namnutrymmen för filerna i mappen Controllers , så att de följer den nya sökvägen med respekt för PSR-4.
  1. Ändra namnutrymmet som används på filen routes.php genom att redigera app\Providers\RouteServiceProvider.php och ändra den här:
protected $namespace = 'App\Http\Controllers';

till detta:

protected $namespace = 'App\Controllers';


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow