Ich habe das folgende Tutorial verwendet, um eine Vorstellung von Schnittstellen zu bekommen:
Aber ich wollte das Verzeichnis ändern wo ich meine Schnittstellen auf "App / Models / Interfaces" setze. Und ich tat es. Aber jetzt kann ich es nicht mehr zur Arbeit bringen. Hier ist mein Code:
Routen.php
%Vor%Modell Subaru.php
%Vor%Schnittstelle CarInterface
%Vor%Ich habe das in meiner composer.json hinzugefügt:
%Vor%Und ich habe das sogar in meiner start / global.php Datei hinzugefügt:
%Vor%In meinem letzten Laravel 5-Projekt bin ich es gewohnt, meine Logiken als Repository-Methode vorzubereiten. Also hier ist meine aktuelle Verzeichnisstruktur. Zum Beispiel haben wir 'Auto'.
Zuerst habe ich einfach ein Verzeichnis erstellt, nennen Sie es libs
unter app
Verzeichnis und lade es in composer.json
Danach erstelle ich einen Unterordner namens Car
. Erstellen Sie unter dem Car-Ordner zwei Dateien 'CarEloquence.php' für die eloquente Implementierung und CarInterface.php
als Schnittstelle.
Erstellen Sie anschließend den Car Service Provider, um den ioc-Controller zu binden.
Für create Car Service Provider können Sie auch den Befehl php artisan von laravel verwenden.
php artisan make:provider CarServiceProvider
Und der letzte Schritt wäre, diesen Service Provider zu config/app.php
provider array hinzuzufügen.
Und schließlich sind wir bereit, unsere Repository-Methode in unserem Controller zu verwenden.
Hauptzweck, um hier zu erreichen, rufen Sie Repository-Methode zu Controller, aber Sie müssen sie nach Ihren Anforderungen verwenden.
CarEloqent hilft uns grundsätzlich dabei, die Datenbankimplementierung zu verbessern, zB wenn Sie in Zukunft dieselbe Funktionalität für andere Datenbanken wie redis
implementieren möchten, fügen Sie einfach eine weitere Klasse CarRedis
hinzu und ändern den Implementierungsdateipfad vom Serveranbieter.
[Buch] Vom Lehrling zum Artisan von Taylor Otwell
Sehr gute Erklärung zu Repository-Methode und Software-Design-Prinzip, die gemeinhin als Trennung von Problemen bezeichnet wird. Sie sollten dieses Buch lesen.
Wenn Sie immer noch irgendwelche Verwirrung haben, um diese Verhaltensweisen zu erreichen, lassen Sie es mich wissen und ich werde diese Frage im Auge behalten, um diese Antwort zu aktualisieren, wenn ich einige Dinge zu ändern oder zu aktualisieren oder nach Bedarf finde.
Tags und Links php namespaces interface laravel