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:
- Flytta och / eller byta namn på standard
Controllers
katalog där vi vill ha det. Till exempel frånapp/Http/Controllers
tillapp/Controllers
- 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.
- Ändra namnutrymmet som används på filen
routes.php
genom att redigeraapp\Providers\RouteServiceProvider.php
och ändra den här:
protected $namespace = 'App\Http\Controllers';
till detta:
protected $namespace = 'App\Controllers';