Suche…
Ändern Sie das Standard-App-Verzeichnis
Es gibt Anwendungsfälle, in denen Sie Ihr App-Verzeichnis möglicherweise in etwas anderes umbenennen möchten. In Laravel4 können Sie einfach einen Konfigurationseintrag ändern. Hier ist eine Möglichkeit, dies in Laravel5 zu tun.
In diesem Beispiel wird das app
Verzeichnis in src
.
Anwendungsklasse überschreiben
Der Verzeichnisname app
ist in der Kernanwendungsklasse fest codiert und muss daher überschrieben werden. Erstellen Sie eine neue Datei Application.php
. Ich ziehe es vor, meine im src
Verzeichnis zu src
(das Verzeichnis, mit dem wir die App ersetzen werden), aber Sie können sie an anderer Stelle ablegen.
So sollte die überschriebene Klasse aussehen. Wenn Sie einen anderen Namen wünschen, ändern Sie einfach den String src
in einen anderen Namen.
namespace App;
class Application extends \Illuminate\Foundation\Application
{
/**
* @inheritdoc
*/
public function path($path = '')
{
return $this->basePath . DIRECTORY_SEPARATOR . 'src' . ($path ? DIRECTORY_SEPARATOR . $path : $path);
}
}
Speicher die Datei. Damit sind wir fertig.
Die neue Klasse aufrufen
Öffnen Sie bootstrap/app.php
und bootstrap/app.php
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
Wir werden es damit ersetzen
$app = new App\Application(
realpath(__DIR__.'/../')
);
Komponist
Öffnen Sie Ihre composer.json
Datei und ändern Sie das automatische Laden an Ihren neuen Speicherort
"psr-4": {
"App\\": "src/"
}
In der Befehlszeile sollten Sie schließlich composer dump-autoload
ausführen, und Ihre App sollte über das src
Verzeichnis src
.
Ändern Sie das Controllerverzeichnis
Wenn wir das Controllers
ändern wollen, brauchen wir:
- Verschieben und / oder benennen Sie das Standard-
Controllers
Verzeichnis um, wo wir es möchten. Zum Beispiel vonapp/Http/Controllers
zuapp/Controllers
- Aktualisieren Sie alle Namespaces der Dateien im Ordner "
Controllers
", sodass sie sich an den neuen Pfad halten und den PSR-4-spezifischen Wert beachten.
- Ändern Sie den Namespace, der auf die Datei
routes.php
angewendet wird, indem Sieapp\Providers\RouteServiceProvider.php
und ändern Sie dies:
protected $namespace = 'App\Http\Controllers';
zu diesem:
protected $namespace = 'App\Controllers';