In den letzten Jahren hat sich Laravel zu einem der bekanntesten Frameworks entwickelt, die Software-Ingenieure zum Erstellen ihrer Webanwendungen verwenden. Ähnlich wie die Popularität, die CodeIgniter in seiner Blütezeit erlebte, wurde Laravel für seine Benutzerfreundlichkeit, Freundlichkeit für Anfänger und das Einhalten von Branchenstandards gelobt.
Eine Sache, die nicht viele Programmierer nutzen, ist das komponentenbasierte System von Laravel. Seit der Umstellung auf Komponenten, die auf Komponisten basieren, ist Laravel 4 zu einem sehr modularen System geworden, ähnlich wie die Reife älterer Frameworks wie Symfony. Dies nennt man das Erleuchten
Eine Gruppe von Komponenten, die meiner Meinung nach nicht das eigentliche Framework selbst ist, sondern eine Zusammenstellung von Bibliotheken, die ein Framework möglicherweise verwenden kann. Das tatsächliche Gerüst von Laravel wird durch die Laravel-Skelettanwendung (auf der Laravel / Laravel
GitHub-Repository), das diese Komponenten zum Erstellen einer Webanwendung verwendet.
In diesem Lernprogramm werden wir in eine Gruppe dieser Komponenten eintauchen und erfahren, wie sie funktionieren, wie sie vom Framework verwendet werden und wie wir ihre Funktionalität erweitern können.
Die Laravel Session-Komponente verarbeitet Sitzungen für die Webanwendung. Es verwendet ein Treiber-basiertes System namens Laravel Manager, das sowohl als Factory als auch als Wrapper für den in der Konfigurationsdatei festgelegten Treiber fungiert. Zum jetzigen Zeitpunkt hat die Session-Komponente Treiber für:
Datei
- ein dateibasierter Sitzungstreiber, in dem Sitzungsdaten in einer verschlüsselten Datei gespeichert werden.Plätzchen
- Ein Cookie-basierter Sitzungstreiber, bei dem Sitzungsdaten in den Cookies des Benutzers verschlüsselt werden.Datenbank
- Sitzungsdaten werden in der Datenbank gespeichert, die für die Anwendung konfiguriert ist.apc
- Sitzungsdaten werden in APC gespeichert.Memcached
- Sitzungsdaten werden in Memcached gespeichert.Redis
- Sitzungsdaten werden in Redis gespeichert.Array
- Sitzungsdaten werden in einem PHP-Array gespeichert. Beachten Sie, dass der Array-Sitzungstreiber keine Persistenz unterstützt und normalerweise nur in Konsolenbefehlen verwendet wird.Die meisten Laravel-Benutzer wissen nicht, aber ein großer Teil davon, wie Laravel arbeitet, liegt bei seinen Diensteanbietern. Sie sind im Wesentlichen Bootstrap-Dateien für jede Komponente, und sie sind ausreichend abstrahiert, sodass Benutzer beliebige Komponenten auf beliebige Weise bootstrapieren können.
Eine grobe Erklärung, wie das funktioniert, finden Sie unten:
registrieren
Methode wird aufgerufen. Dies ermöglicht uns, die gewünschte Komponente zu instanziieren. $ this-> app
), wodurch Dienstanbieter Instanzen der aufgelösten Klassen in den Abhängigkeitscontainer verschieben können.App :: machen
.Zurück zu den Sitzungen, werfen wir einen Blick auf die SessionServiceProivider
:
/ ** * Registrieren Sie die Session Manager-Instanz. * * @return void * / protected function registerSessionManager () $ this-> app-> bindShared ('session', Funktion ($ app) return new SessionManager ($ app);); / ** * Registrieren Sie die Sitzungstreiberinstanz. * * @return void * / protected function registerSessionDriver () $ this-> app-> bindShared ('session.store', function ($ app) // Zuerst erstellen wir den Sitzungsmanager, der für das / verantwortlich ist. / Erstellung der verschiedenen Sitzungstreiber, wenn sie von der // Anwendungsinstanz benötigt werden, und löst sie auf einer verzögerten Lastbasis aus. $ manager = $ app ['session']; return $ manager-> driver ();) ;
Diese beiden Methoden werden von der aufgerufen registrieren()
Funktion. Der erste, registerSessionManager ()
, wird aufgerufen, um zunächst das zu registrieren SessionManager
. Diese Klasse erweitert die Manager
dass ich oben erwähnt habe. Der zweite, registerSessionDriver ()
registriert einen Sitzungshandler für den Manager, basierend auf den von uns konfigurierten Einstellungen. Dies ruft diese Methode schließlich in auf Illuminate \ Support \ Manager
Klasse:
/ ** * Erstellt eine neue Treiberinstanz. * * @param string $ driver * @return gemischt * * @hrows \ InvalidArgumentException * / protected function createDriver ($ driver) $ method = 'create'.ucfirst ($ driver).' driver '; // Wir prüfen, ob für den angegebenen Treiber eine Creator-Methode vorhanden ist. Andernfalls prüfen wir // nach einem benutzerdefinierten Treiberersteller, der es Entwicklern ermöglicht, // Treiber unter Verwendung ihres eigenen benutzerdefinierten Treibererstellers Closure zu erstellen. if (isset ($ this-> customCreators [$ driver])) return $ this-> callCustomCreator ($ driver); elseif (method_exists ($ this, $ method)) return $ this -> $ method (); Neue \ InvalidArgumentException werfen ("Treiber [$ driver] wird nicht unterstützt.");
Hier sehen wir, dass basierend auf dem Namen des Treibers aus der Konfigurationsdatei eine bestimmte Methode aufgerufen wird. Wenn wir es so konfiguriert haben, dass es verwendet wird Datei
Session Handler, wird diese Methode in der aufgerufen SessionManager
Klasse:
/ ** * Eine Instanz des Dateisitzungstreibers erstellen. * * @return \ Illuminate \ Session \ Store * / protected function createFileDriver () return $ this-> createNativeDriver (); / ** * Eine Instanz des Dateisitzungstreibers erstellen. * * @return \ Illuminate \ Session \ Store * / protected function createNativeDriver () $ path = $ this-> app ['config'] ['session.files']; $ this-> buildSession zurückgeben (neuer FileSessionHandler ($ this-> app ['files'], $ path));
Die Fahrerklasse wird dann in eine eingeblendet Geschäft
Klasse, die für das Aufrufen der tatsächlichen Sitzungsmethoden verantwortlich ist. Dies lässt uns die Implementierung von SessionHandlerInterface
von der SPL in die Fahrer, die Geschäft
Klasse erleichtert es.
Lassen Sie uns einen eigenen Session-Handler erstellen, einen MongoDB-Session-Handler. Zuerst müssen wir eine erstellen MongoSessionHandler
in einer neu installierten Laravel-Projektinstanz. (Wir leihen uns stark aus Symfony \ Component \ HttpFoundation \ Session \ Storage \ Handler \ MongoDbSessionHandler
) .:
config = $ config; $ connection_string = 'mongodb: //'; if (! empty ($ this-> config ['username']) &&! empty ($ this-> config ['password'])) $ connection_string. = "$ this-> config ['user'] : $ this-> config ['password'] @ "; $ connection_string. = "$ this-> config ['host']"; $ this-> connection = new Mongo ($ connection_string); $ this-> collection = $ this-> connection-> selectCollection ($ this-> config ['Datenbank'], $ this-> config ['collection']); / ** * @heritDoc * / public Funktion open ($ savePath, $ sessionName) return true; / ** * @inheritDoc * / public function close () return true; / ** * @heritDoc * / public Funktion read ($ sessionId) $ session_data = $ this-> collection-> findOne (array ('_id' => $ sessionId,)); if (is_null ($ session_data)) return "; else return $ session_data ['session_data'] -> bin; / ** * @heritDoc * / public Funktion write ($ sessionId, $ data) $ this-> collection-> update (array ('_id' => $ sessionId), array ('$ set' => array ('session_data' => neue MongoBinData ($ data, MongoBinData :: BYTE_ARRAY), 'timestamp' => new MongoDate (),)), array ('upsert' => true, 'multiple' => false)); / ** * @heritDoc * / public-Funktion destroy ($ sessionId) $ this- > collection-> remove (array ('_id' => $ sessionId)); return true; / ** * @heritDoc * / public-Funktion gc ($ lifetime) $ time = neues MongoDate (time () - $ lifetime); $ this-> collection-> remove (array ('timestamp' => array ('$ lt' => $ time),)); true zurückgeben;
Sie sollten dies im speichern Verkäufer / Laravel / Framework / src / Illuminate / Session
Mappe. Im Rahmen dieses Projekts werden wir es hier angeben, aber idealerweise sollte sich diese Datei in ihrem eigenen Bibliotheksnamensraum befinden.
Als nächstes müssen wir sicherstellen, dass die Manager
Klasse kann diesen Treiber aufrufen. Wir können dies durch die Verwendung der Manager :: erweitern
Methode. Öffnen Verkäufer / Laravel / Framework / src / Illuminate / Session / SessionServiceProvider.php
und fügen Sie den folgenden Code hinzu. Im Idealfall sollten wir den Dienstanbieter erweitern. Dies ist jedoch nicht in diesem Tutorial enthalten.
/ ** * Mongo Driver-Callback einrichten * * @return void * / public function setupMongoDriver () $ manager = $ this-> app ['session']; $ manager-> extend ('mongo', Funktion ($ app) neuen MongoSessionHandler zurückgeben (array ('host' => $ app ['config'] -> get ('session.mongo.host'), 'username' => $ app ['config'] -> get ('session.mongo.username'), 'password' => $ app ['config'] -> get ('session.mongo.password'), 'Datenbank' => $ app ['config'] -> get ('session.mongo.database'), 'collection' => $ app ['config'] -> get ('session.mongo.collection'))); );
Stellen Sie sicher, dass Sie das aktualisieren registrieren()
Methode zum Aufruf dieser Methode:
/ ** * Dienstanbieter registrieren. * * @return void * / public function register () $ this-> setupDefaultDriver (); $ this-> registerSessionManager (); $ this-> setupMongoDriver (); $ this-> registerSessionDriver ();
Als Nächstes müssen wir die Mongo DB-Konfiguration definieren. Öffnen app / config / session.php
und definieren Sie die folgenden Konfigurationseinstellungen:
/ ** * Mongo DB-Einstellungen * / 'mongo' => array ('host' => '127.0.0.1', 'username' => ", 'password' =>", 'database' => 'laravel', 'collection' => 'laravel_session_collection')
Während wir uns in dieser Datei befinden, sollten wir auch die Treiber
Konfiguration oben:
"Fahrer" => "Mongo"
Versuchen Sie jetzt, auf die Hauptseite zuzugreifen (normalerweise, localhost / jemandem ordner / öffentlich
). Wenn diese Seite geladen wird, ohne das anzuzeigen HOPPLA
Glückwunsch! Wir haben erfolgreich einen brandneuen Session-Treiber erstellt! Testen Sie es, indem Sie einige Dummy-Daten in der Sitzung einstellen, über Session :: set ()
und dann per Echo zurück Session :: get ()
.
Die Laravel Auth-Komponente übernimmt die Benutzerauthentifizierung für das Framework sowie die Kennwortverwaltung. Was die Laravel-Komponente hier getan hat, ist die Erstellung einer abstrakten Interpretation des typischen Benutzerverwaltungssystems, das in den meisten Webanwendungen verwendet werden kann, was wiederum dem Programmierer hilft, ein Anmeldesystem leicht zu implementieren. Wie die Session-Komponente wird auch der Laravel-Manager verwendet. Derzeit enthält die Auth-Komponente Treiber für:
beredt
- Hierfür wird der eingebaute ORM von Laravel verwendet Beredt
. Es nutzt auch das vorgefertigte User.php
Klasse in der Modelle
Mappe.Datenbank
- Hierbei wird die standardmäßig konfigurierte Datenbankverbindung verwendet. Es nutzt a GenericUser
Klasse für den Zugriff auf die Benutzerdaten.Da folgt die gleiche Implementierung wie beim Session
Komponente ist der Dienstanbieter sehr ähnlich dem, was wir oben gesehen haben:
/ ** * Dienstanbieter registrieren. * * @return void * / public function register () $ this-> app-> bindShared ('auth', function ($ app) // Wenn der Authentifizierungsdienst tatsächlich vom Entwickler angefordert wurde, werden wir // einstellen eine Variable in der Anwendung, die dies angibt, damit wir // wissen können, dass wir nach dem Ereignis eventuelle in der Warteschlange befindliche Cookies später setzen müssen: $ app ['auth.loaded'] = true; return new AuthManager ($ app);) ;
Hier können wir sehen, dass es im Grunde eine AuthManager
Klasse, die sich um jeden Fahrer dreht, den wir verwenden, und als Fabrik dafür fungieren. In der AuthManager
, es erstellt wieder den entsprechenden Treiber, um einen herumgelegt Bewachen
Klasse, die genauso wirkt wie die Geschäft
Klasse aus Session
.
Beginnen wir mit dem Erstellen eines MongoUserProvider
:
config = $ config; $ connection_string = 'mongodb: //'; if (! empty ($ this-> config ['username']) &&! empty ($ this-> config ['password'])) $ connection_string. = "$ this-> config ['user'] : $ this-> config ['password'] @ "; $ connection_string. = "$ this-> config ['host']"; $ this-> connection = new Mongo ($ connection_string); $ this-> collection = $ this-> connection-> selectCollection ($ this-> config ['Datenbank'], $ this-> config ['collection']); / ** * Ruft einen Benutzer anhand seiner eindeutigen Kennung ab. * * @param gemischt $ bezeichner * @return \ Illuminate \ Auth \ UserInterface | null * / public Funktion retrieveById ($ Bezeichner) $ user_data = $ this-> collection-> findOne (array ('_id' => $ bezeichner, )); if (! is_null ($ user_data)) return new GenericUser ((array) $ user_data); / ** * Ruft einen Benutzer anhand der angegebenen Anmeldeinformationen ab. * * @param array $ credentials * @return \ Illuminate \ Auth \ UserInterface | null * / public Funktion retrieveByCredentials (Array $ credentials) // Versuchen Sie, zuerst den Benutzer zu suchen, ungeachtet des Kennworts. // Wir machen das im validateCredentials-Methode if (isset ($ credentials ['password'])) unset ($ credentials ['password']); $ user_data = $ this-> collection-> findOne ($ credentials); if (! is_null ($ user_data)) return new GenericUser ((array) $ user_data); / ** * Überprüfe einen Benutzer anhand der angegebenen Anmeldeinformationen. * * @param \ Illuminate \ Auth \ UserInterface $ user * @param array $ credentials * @return bool * / public function validateCredentials (UserInterface $ user, Array $ credentials) if (! isset ($ credentials ['password'])) ) falsch zurückgeben; return ($ credentials ['password'] === $ user-> getAuthPassword ());
Es ist wichtig, hier zu beachten, dass ich nicht mit einem Hash-Kennwort prüfe. Dies wurde der Einfachheit halber vorgenommen, um es uns einfacher zu machen, Dummy-Daten zu erstellen und diese später zu testen. Im Produktionscode müssen Sie sicherstellen, dass das Kennwort mit einem Hash versehen wird. Besuche die Illuminate \ Auth \ DatabaseUserProvider
Klasse für ein gutes Beispiel, wie das geht.
Anschließend müssen wir unseren benutzerdefinierten Treiber-Callback auf der registrieren AuthManager
. Dazu müssen wir den Dienstanbieter aktualisieren registrieren
Methode:
/ ** * Dienstanbieter registrieren. * * @return void * / public function register () $ this-> app-> bindShared ('auth', function ($ app) // Wenn der Authentifizierungsdienst tatsächlich vom Entwickler angefordert wurde, werden wir // einstellen eine Variable in der Anwendung, die dies angibt, damit wir // wissen können, dass wir nach dem Ereignis eventuelle in der Warteschlange befindliche Cookies festlegen müssen: $ app ['auth.loaded'] = true; $ auth_manager = new AuthManager ($ app); $ auth_manager-> extend ('mongo', Funktion ($ app) neuen MongoUserProvider zurückgeben (array ('host' => $ app ['config'] -> get ('auth.mongo.host'), 'username' => $ app ['config'] -> get ('auth.mongo.username'), 'password' => $ app ['config'] -> get ('auth.mongo.password'), 'Datenbank' => $ app ['config'] -> get ('auth.mongo.database'), 'collection' => $ app ['config'] -> get ('auth.mongo.collection'))) ); return $ auth_manager;);
Zuletzt müssen wir auch das aktualisieren auth.php
Konfigurationsdatei, um den Mongo-Treiber zu verwenden und ihm die richtigen Mongo-Konfigurationswerte zur Verfügung zu stellen:
'driver' => 'mongo',… / ** * Mongo DB-Einstellungen * / 'mongo' => array ('host' => '127.0.0.1'), 'username' => ", 'password' =>" , 'database' => 'laravel', 'collection' => 'laravel_auth_collection')
Das Testen ist etwas schwieriger. Verwenden Sie dazu die Mongo DB CLI, um einen neuen Benutzer in die Auflistung einzufügen:
mongo> use laravel_auth zu db wechseln laravel_auth> db.laravel_auth_collection.insert (id: 1, E-Mail: "[email protected]", Kennwort: "test_password")> db.laravel_auth_collection.find ()> "_id" : ObjectId ("530c609f2caac8c3a8e4814f"), "id" 1, "email": "[email protected]", "password": "test_password"
Testen Sie es jetzt, indem Sie ein Auth :: validate
Methodenaufruf:
var_dump (Auth :: validate (array ('email' => '[email protected]', 'password' => 'test_password')));
Das sollte ein Speicherabzug sein bool (wahr)
. Wenn dies der Fall ist, haben wir erfolgreich einen eigenen Auth-Treiber erstellt!
Die Laravel Cache-Komponente verarbeitet Zwischenspeicherungsmechanismen zur Verwendung im Framework. Wie bei beiden Komponenten, die wir besprochen haben, wird auch der Laravel Manager verwendet (bemerken Sie ein Muster?). Die Cache-Komponente enthält Treiber für:
apc
Memcached
Redis
Datei
- ein dateibasierter Cache. Daten werden im gespeichert App / Speicher / Cache
Pfad.Datenbank
- datenbankbasierter Cache. Daten werden in Zeilen in der Datenbank gespeichert. Das Datenbankschema ist in der Laravel-Dokumentation beschrieben.Array
- Daten werden in einem Array zwischengespeichert. Denken Sie daran, dass die Array
Der Cache ist nicht persistent und wird bei jedem Laden der Seite gelöscht.Da dies der gleichen Implementierung für beide Komponenten entspricht, können wir davon ausgehen, dass der Dienstanbieter ziemlich ähnlich ist:
/ ** * Dienstanbieter registrieren. * * @return void * / public function register () $ this-> app-> bindShared ('cache', function ($ app) return new CacheManager ($ app);); $ this-> app-> bindShared ('cache.store', Funktion ($ app) return $ app ['cache'] -> driver ();); $ this-> app-> bindShared ('memcached.connector', function () return new MemcachedConnector;); $ this-> registerCommands ();
Das registrieren()
Methode hier erstellt ein CacheManager
, das fungiert wieder als Wrapper und Fabrik für die Treiber. Im Manager wickelt es den Fahrer um eine Repository
Klasse, ähnlich der Geschäft
und Bewachen
Klassen.
Erstellen Sie die MongoStore
, was sollte das verlängern Illuminate \ Cache \ StoreInterface
:
config = $ config; $ connection_string = 'mongodb: //'; if (! empty ($ this-> config ['username']) &&! empty ($ this-> config ['password'])) $ connection_string. = "$ this-> config ['user'] : $ this-> config ['password'] @ "; $ connection_string. = "$ this-> config ['host']"; $ this-> connection = new Mongo ($ connection_string); $ this-> collection = $ this-> connection-> selectCollection ($ this-> config ['Datenbank'], $ this-> config ['collection']); / ** * Rufen Sie ein Element mit dem Schlüssel aus dem Cache ab. * * @param string $ key * @return mixed * / public function get ($ key) $ cache_data = $ this-> getObject ($ key); if (! $ cache_data) return null; Rückgabe unserialize ($ cache_data ['cache_data']); / ** * Rückgabe des gesamten Objekts anstelle von cache_data * * @param string $ key * @return array | null * / protected function getObject ($ key) $ cache_data = $ this-> collection-> findOne (array ('key' => $ key,)); if (is_null ($ cache_data)) null zurückgeben; if (isset ($ cache_data ['expire']) && time ()> = $ cache_data ['expire']) $ this-> forget ($ key); null zurückgeben; Rückgabe von $ cache_data; / ** * Ein Element für eine bestimmte Anzahl von Minuten im Cache speichern. * * @param string $ key * @param gemischt $ value * @param int $ minutes * @return void * / public Funktion ($ key, $ value, $ minutes) $ expiry = $ this-> Ablauf ($ minutes) ); $ this-> collection-> update (array ('key' => $ key), array ('$ set' => array ('cache_data' => serialize ($ value), 'expiry' => $ expiry, ' ttl '=> ($ minutes * 60))), array (' upsert '=> true,' multiple '=> false)); / ** * Erhöhen Sie den Wert eines Elements im Cache. * * @param String $ key * @param gemischt $ value * @return void * * @hrows \ LogicException * / public Funktionsinkrement ($ key, $ value = 1) $ cache_data = $ this-> getObject ($ key) ; if (! $ cache_data) $ new_data = array ('cache_data' => serialize ($ value), 'expiry' => $ this-> expiration (0), 'ttl' => $ this-> expiration (0) ); else $ new_data = array ('cache_data' => serialize (unserialize ($ cache_data ['cache_data']) + $ value), 'expiry' => $ this-> expiration ((int) ($ cache_data ['ttl.) '] / 60)),' ttl '=> $ cache_data [' ttl ']); $ this-> collection-> update (array ('key' => $ key), array ('$ set' => $ new_data), array ('upsert' => true, 'multiple' => false)) ; / ** * Verringert den Wert eines Elements im Cache. * * @param String $ key * @param gemischt $ value * @return void * * @hrows \ LogicException * / public Funktion dekrementieren ($ key, $ value = 1) $ cache_data = $ this-> getObject ($ key) ; if (! $ cache_data) $ new_data = array ('cache_data' => serialize ((0 - $ value)), 'expiry' => $ this-> expiration (0), 'ttl' => $ this-> Ablauf (0)); else $ new_data = array ('cache_data' => serialize (unserialize ($ cache_data ['cache_data']) - $ value), 'expiry' => $ this-> expiration ((int) ($ cache_data ['ttl.) '] / 60)),' ttl '=> $ cache_data [' ttl ']); $ this-> collection-> update (array ('key' => $ key), array ('$ set' => $ new_data), array ('upsert' => true, 'multiple' => false)) ; / ** * Ein Element unbegrenzt im Cache speichern. * * @param string $ key * @param gemischt $ value * @return void * / public function für immer ($ key, $ value) return $ this-> put ($ key, $ value, 0); / ** * Entfernen Sie ein Element aus dem Cache. * * @param string $ key * @return void * / public function forget ($ key) $ this-> collection-> remove (array ('key' => $ key)); / ** * Entfernen Sie alle Elemente aus dem Cache. * * @return void * / public function flush () $ this-> collection-> remove (); / ** * Liefert die Ablaufzeit basierend auf den angegebenen Minuten. * * @param int $ minutes * @return int * / Ablauf der geschützten Funktion ($ minutes) if ($ minutes === 0) return 9999999999; Rückkehrzeit () + ($ Minuten * 60); / ** * Ruft das Präfix des Cache-Schlüssels ab. * * @return string * / public function getPrefix () return ";
Wir müssen auch den Mongo-Rückruf dem Manager erneut hinzufügen:
/ ** * Dienstanbieter registrieren. * * @return void * / public function register () $ this-> app-> bindShared ('cache', Funktion ($ app) $ cache_manager = neuer CacheManager ($ app); $ cache_manager-> extend ('mongo.) ', function ($ app) neuen MongoStore zurückgeben (array (' host '=> $ app [' config '] -> get (' cache.mongo.host '),' username '=> $ app [' config ' ] -> get ('cache.mongo.username'), 'password' => $ app ['config'] -> get ('cache.mongo.password'), 'database' => $ app ['config' ] -> get ('cache.mongo.database'), 'collection' => $ app ['config'] -> get ('cache.mongo.collection')));); Rückgabe von $ cache_manager;) ; $ this-> app-> bindShared ('cache.store', Funktion ($ app) return $ app ['cache'] -> driver ();); $ this-> app-> bindShared ('memcached.connector', function () return new MemcachedConnector;); $ this-> registerCommands ();
Zuletzt müssen wir das aktualisieren cache.php
Konfigurationsdatei:
'driver' => 'mongo',… / ** * Mongo DB-Einstellungen * / 'mongo' => array ('host' => '127.0.0.1'), 'username' => ", 'password' =>" , 'database' => 'laravel', 'collection' => 'laravel_cache_collection')
Versuchen Sie jetzt, die Cache :: put ()
und Cache :: get ()
Methoden. Bei korrekter Ausführung sollten wir MongoDB zum Zwischenspeichern der Daten verwenden können!
In diesem Lernprogramm haben wir Folgendes gelernt:
Erleuchten
, die vom Laravel-Framework verwendet wird.Hoffentlich hilft dies Programmierern dabei, ihre eigenen Treiber zu erstellen und die aktuellen Funktionen des Laravel-Frameworks zu erweitern.