Verbessern Sie die Leistung der Laravel-Anwendung
Die Verwendung von Laravel für die Entwicklung ist eine effiziente und angenehme Erfahrung.
Wenn Sie bereit sind, eine Anwendung bereitzustellen, stellen Sie möglicherweise fest, dass die Anwendung in realen Umgebungen möglicherweise nicht gut funktioniert.
Was man verstehen muss, ist, dass es kein Allheilmittel gibt. Wenn Sie versuchen, alle Optimierungen für jedes Detail Ihrer App richtig zu machen, wird sie möglicherweise langsamer, aber mit den folgenden Tipps kommen Sie genau richtig.
Cache-Konfigurationsdatei
Die Konfigurationselemente von Laravel sind in Dutzenden von Konfigurationsdateien verteilt und es verbraucht Leistung, jede Datei including
in jede Anfrage einzubinden. Um alle Konfigurationsdateien zu einer zusammenzuführen, können Sie Folgendes verwenden:
php artisan config:cache
Denken Sie daran, dass das Ändern der Konfigurationsdatei keine Auswirkungen auf den vorhandenen Konfigurationsdatei-Cache hat. Um den Cache zu aktualisieren, wiederholen Sie den obigen Befehl. Wenn Sie den Cache vollständig leeren möchten, führen Sie Folgendes aus:
php artisan config:clear
Routen-Cache
In Laravel erfordert das Routing auch teuren Overhead. Zwischenspeichern Sie die Datei „routes.php“ mit:
php artisan route:cache
Bitte beachten Sie, dass dies nicht mit Schließungen funktioniert. Wenn Sie Abschlüsse verwenden, ist dies eine gute Gelegenheit, diese in den Controller zu verschieben, da der Befehl artisan eine Ausnahme auslöst, wenn er versucht, den an den Abschluss gebundenen Pfad anstelle der richtigen Controller-Methode zu kompilieren.
Änderungen an der Routes.php haben wie beim Konfigurieren des Caches keine Auswirkungen. Um den Cache zu aktualisieren, führen Sie den obigen Befehl jedes Mal aus, wenn Sie die Pfaddatei ändern. Um den Routing-Cache vollständig zu bereinigen, führen Sie den folgenden Befehl aus:
php artisan route:clear
Optimierung des Ladens von Klassenkarten
In einem mittelgroßen Projekt ist es aus guten Gründen normal, Hunderte von PHP-Quelldateien zu haben Entsprechend den Programmiergewohnheiten werden wir den Code trennen und jede PHP-Datei hat ihre eigenen Verantwortlichkeiten. Dies ist natürlich nicht ohne Nachteile. Diese Hunderte von Dateien muss Laravel bei jeder Anfrage laden, was sehr leistungsintensiv ist.
Daher besteht eine bessere Möglichkeit darin, zu deklarieren, welche Dateien bei jeder Benutzeranfrage geladen werden müssen (z. B. Dienstanbieter, Middleware usw.), und dann diese Dateien zu schreiben, die jedes Mal geladen werden müssen. Reduzieren Sie in derselben Datei die Anzahl der Include-Dateien.
Dies ähnelt dem Zusammenführen von Dateien in einer einzigen Datei ohne Unterschied (Webpack, Gulp), wodurch Browser- und Serveranfragen reduziert werden.
Wenn Sie weitere Quelldateien hinzufügen müssen, können Sie diese im Dateischlüssel von config/compile.php deklarieren.
Wenn Sie die Dateien festlegen, die für jede Anfrage geladen werden müssen, werden sie in dieselbe Datei geschrieben, wodurch der Leistungsverbrauch beim Laden von Dateien reduziert wird
php artisan optimize --force
Optimieren Sie das automatische Laden von Composer
Dies gilt nicht nur für Laravel, sondern für jede Anwendung, die Composer verwendet.
Ich erkläre zunächst, wie der PSR-4-Autoloader funktioniert, und zeige Ihnen dann, welche Befehle Sie ausführen sollten, um ihn zu optimieren. Wenn Sie nicht daran interessiert sind, die Funktionsweise von Composer zu verstehen, empfehle ich Ihnen, direkt zum Absatz über Konsolenbefehle zu springen.
Wenn Sie die Klasse AppControllersAuthController von Composer anfordern, durchsucht dieser zunächst die Klassenzuordnung nach der direkten Zuordnung. Classmap ist ein 1:1 assoziatives Array von Klassen und Dateien. Da Sie die Login-Klasse und die zugehörigen Dateien nicht manuell zur Klassenzuordnung hinzugefügt haben, sucht Composer natürlich weiterhin im Namespace.
Da App ein PSR-4-Namespace ist, der standardmäßig mit Laravel geliefert wird und mit dem Ordner app/ verknüpft ist, wird Composer versuchen, die PSR-4-Klasse zu konvertieren Namen in Dateinamen mithilfe grundlegender Verfahren zur Zeichenfolgenmanipulation umwandeln. Schließlich wird vermutet, dass sich AppControllersAuthController in der Datei AuthController.php befinden muss, die sich im Ordner Controllers/ befindet, der sich zufälligerweise in befindet der Namespace-Ordner, also app/.
All diese harte Arbeit, nur um die Klasse AppControllersAuthController in der Datei app/Controllers/AuthController.php vorhanden zu machen. Damit Composer die gesamte Anwendung scannen und eine direkte 1-zu-1-Zuordnung von Klassen und Dateien erstellen kann, führen Sie den folgenden Befehl aus:
composer dumpautoload -o
Denken Sie daran, wenn Sie bereits php artisan activate - ausgeführt haben. -force, dann müssen Sie diese Funktion nicht erneut ausführen. Denn der Optimierungsbefehl weist Composer bereits an, einen optimierten Autoloader zu erstellen.
JIT-Compiler (Just-in-Time-Compiler)
PHP wird von Computern natürlich nicht verstanden. Sie können es nicht in Bytecode kompilieren und vom Computer ausführen lassen. PHP muss einen Vermittler wie die Zend-Engine durchlaufen, der die PHP-Datei interpretiert und die entsprechende C-Routine ausführt. Wie Sie sich vorstellen können, ist es langsam. Jedes Mal, wenn Ihr Server eine PHP-Datei ausführt, muss er diese in Token konvertieren – dieser Vorgang wird vom AST-Parser durchgeführt und interpretiert. Leider muss der Parser die PHP-Datei jedes Mal neu kompilieren, auch wenn er jedes Mal das gleiche Ergebnis erhält.
Um Ihre Anwendung schneller zu machen, benötigen Sie einen Einmal kompilieren, lebenslang ausführen-Ansatz, und genau das macht ein JIT-Compiler.
对于 Laravel 所推荐使用的 JIT 编译器是 HHVM,由 Facebook 创立并广泛使用。Wikipedia、Etsy 和其他上千项目也在使用它。
使用更快的缓存和会话驱动
将 session 保存在文件中是种足够快速而又优雅的方法,自 PHP 开始的时代就在这样做了。但是如果你追求性能,那么文件系统就是你需要注意的一件事,因为它很慢。一种更好的做法是将 cache 和 session 存储在内存中,因为它提供了一种高效读写数据的方式。幸运的是,laravel 支持一些基于内存的 cache 和 session 驱动。
我的建议是使用 memcached 作为 cache 和 session 的驱动,但你可以选择任何你喜欢的,只要它是基于内存工作的。
要更改 session 驱动,需要检查以下文件中「driver」项:
app/config/session.php
要更改 cache 驱动,需要检查以下文件中「driver」项:
app/config/cache.php
不要低估通过优化查询语句带来的查询速度的提升
就像你看到的,大部分优化都是在不同的层面使用缓存。但当面临数据库优化时,你不应该依赖缓存。缓存应是优化查询的最后手段。
缓存查询结果
MySQL 不会替你做这件事,也不如你自己做的好。当然了你肯定不会把应用中每个查询的结果都做缓存,看看数据统计,在应用程序中那些高频率的查询语句,它们真的有必要被频繁地执行?每 15 分钟运行一次然后把相同的结果提供给用户
不是更好吗?
在查询构造器中移除了 removing
方法是件好事(它曾经是个很好的功能,但不够好 - 人们似乎高估了它的作用)。然后你可以更多地使用 Cache::remember
方法,就像这样:
$posts = Cache::remember('index.posts', 30, function() { return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get(); });
更多Laravel相关技术文章,请访问Laravel教程栏目进行学习!
Das obige ist der detaillierte Inhalt vonVerbessern Sie die Leistung der Laravel-Anwendung. 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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











Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

Bei der Entwicklung von Websites mit CraftCMS stoßen Sie häufig mit Ressourcendateiproblemen, insbesondere wenn Sie häufig CSS und JavaScript -Dateien aktualisieren, alte Versionen von Dateien möglicherweise weiterhin vom Browser zwischengespeichert. Dieses Problem wirkt sich nicht nur auf die Benutzererfahrung aus, sondern erhöht auch die Schwierigkeit der Entwicklung und des Debuggens. Kürzlich habe ich in meinem Projekt ähnliche Probleme gestoßen, und nach einigen Erkundungen fand ich das Plugin Wiejeben/Craft-Laravel-Mix, das mein Caching-Problem perfekt löste.

Möchten Sie das Laravel -Rahmen lernen, aber unter keinen Ressourcen oder dem wirtschaftlichen Druck leiden? Dieser Artikel bietet Ihnen ein kostenloses Lernen von Laravel und lehrt Sie, wie Sie Ressourcen wie Online -Plattformen, Dokumente und Community -Foren verwenden, um eine solide Grundlage für Ihre PHP -Entwicklungsreise zu schaffen.

Laravel bietet einen umfassenden Auth-Framework für die Implementierung von Benutzeranmeldungsfunktionen, einschließlich: Definieren von Benutzermodellen (eloquentes Modell), Erstellen von Anmeldeformularen (Blattvorlagen-Engine), Schreiben von Login-Controllern (Erben von Auth \ Logincontroller), Überprüfung von Login-Anfragen (Auth :: Versuch) Umleitung nach Anmeldung (Redirect). Darüber hinaus enthält das Auth -Framework auch Funktionen wie das Zurücksetzen von Kennwörtern, das Registrieren und Überprüfen von E -Mails. Weitere Informationen finden Sie in der Laravel -Dokumentation: https://laravel.com/doc

Artikelzusammenfassung: Dieser Artikel enthält detaillierte Schritt-für-Schritt-Anweisungen, um die Leser zu leiten, wie das Laravel-Framework einfach installiert werden kann. Laravel ist ein leistungsstarkes PHP -Framework, das den Entwicklungsprozess von Webanwendungen beschleunigt. Dieses Tutorial deckt den Installationsprozess von den Systemanforderungen bis zur Konfiguration von Datenbanken und das Einrichten von Routing ab. Durch die Ausführung dieser Schritte können die Leser schnell und effizient eine solide Grundlage für ihr Laravel -Projekt legen.

In dem LaRavel Framework -Versionsauswahlhandbuch für Anfänger taucht dieser Artikel in die Versionsunterschiede von Laravel ein, um Anfänger bei der Entscheidung über fundierte Entscheidungen zwischen vielen Versionen zu unterstützen. Wir werden uns auf die wichtigsten Funktionen jeder Version konzentrieren, ihre Vor- und Nachteile vergleichen und nützliche Ratschläge geben, um Anfängern zu helfen, die am besten geeignete Version von Laravel auf der Grundlage ihrer Fähigkeiten und der Projektanforderungen auszuwählen. Für Anfänger ist die Auswahl einer geeigneten Version von Laravel von entscheidender Bedeutung, da sie ihre Lernkurve und ihre allgemeine Entwicklungserfahrung erheblich beeinflussen kann.

Das Laravel-Framework verfügt über integrierte Methoden, um die Versionsnummer einfach zu sehen, um die verschiedenen Anforderungen der Entwickler zu erfüllen. In diesem Artikel werden diese Methoden untersucht, einschließlich der Verwendung des Befehlszeilen -Tools des Composers, der Zugriff auf .Env -Dateien oder das Erhalten von Versionsinformationen über PHP -Code. Diese Methoden sind für die Aufrechterhaltung und Verwaltung der Versionierung von Laravel -Anwendungen von wesentlicher Bedeutung.

Laravel und ThinkPhp sind beide populäre PHP -Frameworks und haben ihre eigenen Vor- und Nachteile in der Entwicklung. In diesem Artikel wird die beiden Tiefe verglichen und ihre Architektur, Funktionen und Leistungsunterschiede hervorgehoben, um Entwicklern zu helfen, fundierte Entscheidungen auf der Grundlage ihrer spezifischen Projektanforderungen zu treffen.
