


Detaillierte grafische Erklärung der Kernarchitektur von Laravel 5.5
Dieses Mal bringe ich Ihnen eine detaillierte grafische und textliche Erklärung der Kernarchitektur von Laravel 5.5. Was sind die Vorsichtsmaßnahmen bei der Verwendung der Kernarchitektur von Laravel 5.5? .
Vorwort
Dieser Artikel stellt Ihnen hauptsächlich die relevanten Inhalte zur Kernarchitektur von Laravel 5.5 vor und stellt sie Ihnen als Referenz und zum Studium zur Verfügung . Ich werde im Folgenden nichts sagen, werfen wir einen Blick auf die detaillierte Einführung.
1. Die Abhängigkeitsinjektion
-Methode übergibt den Komponentennamen und das Framework instanziiert ihn automatisch kann direkt
verwenden, zum Beispiel das am häufigsten verwendete Anforderungsobjekt
2. Servicecontainer
Tatsächlich ist der Kern von Laravel ein IoC-Container. Der Kern von Laravel selbst ist sehr leichtgewichtig und verfügt über keine magischen oder wesentlichen Anwendungsfunktionen. Verschiedene von vielen Menschen verwendete Funktionsmodule wie Route (Routing), Eloquent ORM (Datenbank-ORM-Komponente), Request (Anfrage), Response (Antwort) usw. werden tatsächlich von Klassenmodulen bereitgestellt, die nichts mit dem Kern zu tun haben Der Prozess von der Registrierung über die Instanziierung dieser Klassen bis hin zur endgültigen Verwendung durch Sie liegt tatsächlich in der Verantwortung des Service-Containers von Laravel.
Der Dienstanbieter ist hauptsächlich in zwei Teile unterteilt: Registrieren (Registrierung) und Booten (Booten, Initialisieren)
3. Dienstanbieter
Damit eine Klasse von einem Container extrahiert werden kann, muss sie zunächst beim Container registriert werden. Da Laravel diesen Container als Service-Container bezeichnet, müssen wir, wenn wir einen Service benötigen, zuerst den Service registrieren und an den Container binden. Dann ist das Ding, das den Service bereitstellt und den Service an den Container bindet, der Service-Provider.
4. Fügen Sie Ihre eigene Klasse zum IOC-Container hinzu
4.1. Erstellen Sie eine neue Validierungsklasse
4.2. Erstellen Sie einen neuen ValidateProvider
4.3. Binden Sie die Validate-Klasse an den Provider
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class ValidateProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { $this->app->bind('valicate',function(){ return new Validate(); }); } }
4.4. Provider zum IOC-Container hinzufügen
4.5 🎜>
5. Fassade Fassade wird beispielsweise verwendet, um eine einheitliche Schnittstelle bereitzustellen Unabhängig davon, welchen Cache Sie verwenden, Redis oder Memcache, kann der Client die Methode „cache::get()“ verwenden, um den Wert abzurufen. Ob Sie Redis oder Memcahe verwenden, hängt davon ab, welchen Sie im Dienstanbieter gebunden haben . Die Implementierung von cache::get() besteht darin, die Facade-Methode getFacadeAccessor zu erben und den Schlüsselwert zurückzugeben, den Sie im Container binden, z. B. Cache. Anschließend verwendet die Facade-Klasse die
php Magic-Variablecallstatic() , callstatic Die Logik analysiert den durch den Cache gebundenen Dienst aus dem Container, an den der oben erwähnte Dienstanbieter gebunden ist
5.1, zum Beispiel E-Mail in config/app.php
magische Methode eingegeben 5.4、这个方法会得到mailer的实例,即app('mailer') 5.5、这个实例便能调用mailer类的send方法 6、契约 Laravel 的契约是一组定义框架提供的核心服务的接口。例如,Illuminate\Contracts\Queue\Queue契约定义了队列任务所需的方法,而Illuminate\Contracts\Mail\Mailer契约定义了发送电子邮件所需的方法。框架对每个契约都提供了相应的实现。 好处是实现了程序的低耦合和简单性。 低耦合# 首先,让我们来看一些高耦合缓存实现的代码。如下: 这个类中,程序跟给定的缓存实现高耦合。因为我们依赖于一个扩展包的特定缓存类。一旦这个扩展包的 API 被更改了,我们的代码就必须跟着改变。 同样的,如果我们想要将底层的的缓存技术( Memcached )替换为另一种缓存技术( Redis ),那又得再次修改这个repository类。而repository类不应该了解太多关于谁提供了这些数据或是如何提供的等等。 比起上面的做法,我们可以使用一个简单的、与扩展包无关的接口来改进我们的代码: 相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章! 推荐阅读:<?php
namespace App\Orders;
class Repository
{
/**
* 缓存实例。
*/
protected $cache;
/**
* 创建一个仓库实例。
*
* @param \SomePackage\Cache\Memcached $cache
* @return void
*/
public function construct(\SomePackage\Cache\Memcached $cache)
{
$this->cache = $cache;
}
/**
* 按照 Id 检索订单
*
* @param int $id
* @return Order
*/
public function find($id)
{
if ($this->cache->has($id)) {
//
}
}
}
<?php
namespace App\Orders;
use Illuminate\Contracts\Cache\Repository as Cache;
class Repository
{
/**
* 缓存实例。
*/
protected $cache;
/**
* 创建一个仓库实例。
*
* @param Cache $cache
* @return void
*/
public function construct(Cache $cache)
{
$this->cache = $cache;
}
}
Das obige ist der detaillierte Inhalt vonDetaillierte grafische Erklärung der Kernarchitektur von Laravel 5.5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Die neuesten Versionen von Laravel 9 und CodeIgniter 4 bieten aktualisierte Funktionen und Verbesserungen. Laravel9 übernimmt die MVC-Architektur und bietet Funktionen wie Datenbankmigration, Authentifizierung und Template-Engine. CodeIgniter4 nutzt die HMVC-Architektur, um Routing, ORM und Caching bereitzustellen. In Bezug auf die Leistung sorgen das auf Dienstanbietern basierende Designmuster von Laravel9 und das leichte Framework von CodeIgniter4 für eine hervorragende Leistung. In praktischen Anwendungen eignet sich Laravel9 für komplexe Projekte, die Flexibilität und leistungsstarke Funktionen erfordern, während CodeIgniter4 für schnelle Entwicklung und kleine Anwendungen geeignet ist.

Vergleichen Sie die Datenverarbeitungsfunktionen von Laravel und CodeIgniter: ORM: Laravel verwendet EloquentORM, das eine relationale Klassen-Objekt-Zuordnung bereitstellt, während CodeIgniter ActiveRecord verwendet, um das Datenbankmodell als Unterklasse von PHP-Klassen darzustellen. Abfrage-Builder: Laravel verfügt über eine flexible verkettete Abfrage-API, während der Abfrage-Builder von CodeIgniter einfacher und Array-basiert ist. Datenvalidierung: Laravel bietet eine Validator-Klasse, die benutzerdefinierte Validierungsregeln unterstützt, während CodeIgniter über weniger integrierte Validierungsfunktionen verfügt und eine manuelle Codierung benutzerdefinierter Regeln erfordert. Praxisfall: Beispiel einer Benutzerregistrierung zeigt Lar

Für Anfänger bietet CodeIgniter eine sanftere Lernkurve und weniger Funktionen, deckt aber die Grundbedürfnisse ab. Laravel bietet einen größeren Funktionsumfang, weist jedoch eine etwas steilere Lernkurve auf. In Bezug auf die Leistung schneiden sowohl Laravel als auch CodeIgniter gut ab. Laravel verfügt über eine umfangreichere Dokumentation und aktive Community-Unterstützung, während CodeIgniter einfacher und leichtgewichtiger ist und über starke Sicherheitsfunktionen verfügt. Im praktischen Fall der Erstellung einer Blogging-Anwendung vereinfacht EloquentORM von Laravel die Datenmanipulation, während CodeIgniter mehr manuelle Konfiguration erfordert.

Bei der Auswahl eines Frameworks für große Projekte haben Laravel und CodeIgniter jeweils ihre eigenen Vorteile. Laravel ist für Anwendungen auf Unternehmensebene konzipiert und bietet modularen Aufbau, Abhängigkeitsinjektion und einen leistungsstarken Funktionsumfang. CodeIgniter ist ein leichtes Framework, das sich eher für kleine bis mittelgroße Projekte eignet und Wert auf Geschwindigkeit und Benutzerfreundlichkeit legt. Für große Projekte mit komplexen Anforderungen und einer großen Anzahl von Benutzern sind die Leistung und Skalierbarkeit von Laravel besser geeignet. Für einfache Projekte oder Situationen mit begrenzten Ressourcen sind die leichten und schnellen Entwicklungsfunktionen von CodeIgniter idealer.

Laravel – Artisan Commands – Laravel 5.7 bietet eine neue Möglichkeit, neue Befehle zu behandeln und zu testen. Es enthält eine neue Funktion zum Testen von Handwerkerbefehlen und die Demonstration wird unten erwähnt?

Für kleine Projekte eignet sich Laravel, für größere Projekte, die starke Funktionalität und Sicherheit erfordern. CodeIgniter eignet sich für sehr kleine Projekte, die geringes Gewicht und Benutzerfreundlichkeit erfordern.

Vergleichen Sie Laravel's Blade und die Twig-Vorlagen-Engine von CodeIgniter und wählen Sie je nach Projektanforderungen und persönlichen Vorlieben: Blade basiert auf der MVC-Syntax, die eine gute Codeorganisation und Vorlagenvererbung fördert. Twig ist eine Bibliothek eines Drittanbieters, die flexible Syntax, leistungsstarke Filter, erweiterten Support und eine Sicherheits-Sandbox bietet.

Laravel – Artisan Console – Das Laravel-Framework bietet drei Haupttools für die Interaktion über die Befehlszeile, nämlich Artisan, Ticker und REPL. In diesem Kapitel wird Artisan ausführlich erläutert.
