Meine Bibliothek hat sich mal wieder ein wenig vergrößert – was gut ein bis zwei mal pro Woche passiert, also an sich noch kein blogwürdiges Ereignis ist. Dieses mal ist das Buch aber genau zum richtigen Thema und auch noch sehr hilfreich weshalb ich es gerne mit euch teilen möchte: Laravel Up and Running von Matt Stauffer.
laravel 5
Meine Freizeit zwischen zwei Projekten nutze ich gern zur Weiterbildung. Aufgrund meiner Aktivität im Laravelumfeld stoße ich dabei natürlich auch immer wieder auf nützliche Kurse, Bücher, Tutorials oder Blogposts aus der Community und möchte diese hier natürlich auch an euch weiterempfehlen. Heute geht es dabei um Test-Driven-Development (TDD) mit Laravel.
Adam Wathan arbeitet genau zu diesem Thema an einem wunderbaren Videokurs – Test Driven Laravel!
Nach einiger Pause möchte ich heute wieder mal einen Linktipp geben. Vor ein paar Tagen habe ich das Buch Refactoring to Collections von Adam Wathan gelesen und kann den Inhalt nur empfehlen.
Bei der Ladezeit von Laravel Anwendungen gibt es viele potenzielle Störfaktoren – aber bei datenbankgetriebenen Seiten ist auch hier wieder ein ganz alltäglicher Punkt wichtig: Optimierung von Datenbankabfragen. Nachdem wir uns im letzten Artikel bereits um das Caching mit Redis gekümmert haben geht es nun darum, was wir unternehmen können, um unsere Datenbankabfragen mit Eloquent schnell zu halten.
Nachdem wir uns um die Basics der Ladezeitverbesserung im letzten Artikel bereits gekümmert haben steigen wir nun etwas tiefer ein. Caching ist ein wichtiger Bestandteil des Webs und auch Laravel verwendet natürlich Caching an diversen Stellen. Doch um hier den Performancevorteil noch zu erhöhen sollten wir vom Standardcache – nämlich dem dateibasierten – zu einem In-Memory Cache wie beispielsweise Redis wechseln. Wie das geht sehen wir uns nun Schritt für Schritt an.
Die Ladezeit einer Website ist ein wichtiger Faktor für viele Dinge. Jede zusätzliche Sekunde erhöht die Chance, dass der Besucher ungeduldig wird und unsere Seite wieder verlässt. Dieser Fakt ist auch ein Grund für Suchmaschinen wie Google die Seitenladezeit als Indikator für unser Suchmaschinenranking zu benutzen, daher ist die Optimierung der Ladezeit ebenfalls ein wichtiger SEO Bestandteil.
In dieser Artikelserie steigen wir in die Optimierung von Laravelanwendungen ein um die Ladezeit dieser Anwendungen zu verringern. Dabei geht es nicht nur um Laravelspezifische Änderungen sondern auch allgemeine Dinge die die Geschwindigkeit unserer Seite beträchtlich erhöhen können wie beispielsweise Caches und Webserverkonfigurationen.
Nachdem ich mich jetzt sicher schon zum dritten oder vierten mal mit der Installation und Einrichtung von wkhtmltopdf unter Ubuntu herumgeschlagen habe verfasse ich nun diesen Blogpost als Gedankenstütze und hoffentlich um auch anderen Leuten die Kopfschmerzen zu ersparen. Regelmäßig endet der Installationsversuch in der Fehlermeldung „Cannot connect to X Server“ weil immer genau soviel Zeit zwischen zwei Installationen vergeht, dass ich den Trick vergessen habe und die meisten Informationen bei Google leider schon veraltet sind.
Wenn du also bereits auf dasselbe Problem gestoßen bist, in diesem Artikel schauen wir uns an wie man wkhtmltopdf installiert und wie man danach in Laravel damit ganz einfach PDFs wie zum Beispiel Rechnungen erstellen kann.
Der heutige Linktipp geht mal wieder in die Welt von Laravel, meinem bevorzugten Framework seit gut anderthalb Jahren. Im stetig wachsenden Laravelkosmos ist es nicht immer ganz einfach, auf dem neuesten Stand zu bleiben. Aus diesem Grund auch der heutige Tipp: Laravel News.
Ein sehr zeitsparendes Feature in Laravel sind die sogenannten Route Model Bindings. Das bedeutet nichts anderes als dass wir Laravel mitteile:
Wenn ich diesen Parameter in einer Route verwende, instanzier mir bitte das dazu gehörige Eloquent Model und lies die Daten dazu aus der Datenbank aus.
Das resultierende Objekt bekommen wir dann in unsere Controllermethode übergeben. In diesem Artikel möchte ich einen Überblick über Route Model Binding geben und wir sehen uns ein paar weniger bekannte Möglichkeiten dazu an.