UX9 URL Shortener: Upgrade auf Laravel 8 – Teil 1

Ich habe wieder einmal meinen Urlaub genutzt, um einige meiner privaten Projekte weiter zu entwickeln. Eines meiner derzeit größten Projekten ist mein eigener URL Shortener: https://ux9.de

Das ist neben meiner eigenen Homepage mittlerweile auch das Projekt, welches am längsten läuft. Bereits Ende 2009 habe ich mit den ersten Ideen dazu angefangen und diese noch auf meinem derzeitigen Blog (kein WordPress) genutzt, um externe Verlinkungen zu analysieren und durch eine einfache Verkürzung besser darstellen zu können. Mit dem Erwerb von mehreren dreistelligen Domains, hat mein URL Shortener dann in den darauffolgenden Jahren auch seine eigene Seite bekommen.

Das Projekt wurde mit der Zeit stetig erweitert. Die ersten Jahre habe ich nur PHP ohne Framework verwendet. Seit 2015 habe ich dort dann mit Laravel 4.2 bzw. Laravel 5 als Framework begonnen. Dabei habe ich auch die Grundstruktur des Projektes neu organisiert. Neben stetigen Weiterentwicklungen gab es zuletzt ein Upgrade auf Laravel 6 im September 2019.

Die darauffolgenden Jahre war ich mir nicht sicher, ob ich das Projekt überhaupt noch weiter betreiben möchte oder nicht. Nach viel Überlegen habe ich mich aber dazu entschlossen, das Projekt weiter laufen zu lassen. Die Vorraussetzung dafür ist aber, dass das Projekt von Grund auf neu strukturiert wird, mit Unit-Test ergänzt wird und es eine vernünftige Möglichkeit gibt, dass Administratoren die einzelnen Module verwalten können.

Die Umstellung meiner Seite, möchte ich in dieser Serie von Beiträgen mit euch teilen. Ich hoffe ich kann damit einen kleinen Einblick geben, wie man Projekte sinnvoll umstellen kann. Die Teile werden in den nächsten 1-2 Wochen erscheinen.

Warum du immer Timeouts definieren solltest

Roberto Vitillo (@ravitillo) schreibt in seinem Beitrag darüber, warum ihr bei API Calls immer darauf achten solltet, auch Timeouts zu verwenden.

Das ist tatsächlich auch etwas, was mir relativ häufig auf Webseiten aufgefallen ist. Plötzlich ist eine Seite sehr langsam, lädt über eine lange Zeit oder ist gar nicht erst erreichbar. Hier kann es unter anderem dann daran liegen, das der Server eine Schnittstelle aufrufen möchte, welche nicht erreichbar oder viel zu lange für eine Antwort benötigt.

Sind bei solchen Szenarien dann keine Timeouts in der Anwendung definiert, so muss mit unerwarteten Problemen der Anwendung gerechnet werden. Im schlimmsten Fall, ist die Anwendung nicht erreichbar weil z.B. Nginx ein Gateway Timeout zurück meldet.

Hier kommt ihr nun weiter zum Blog-Eintrag. Ist wirklich sehr zum empfehlen und auch mit einige Code Beispielen: https://robertovitillo.com/default-timeouts/

Ein neues Video von SchuBu Development & Training wurde gerade veröffentlicht. Es geht weiter in der Serie zu „Laravel 8 Kurs“ mit Folge 24 und dem Inhalt: „Laravel 8 Kurs: Backend-Bereich aufräumen“ [vom 10.10.2021]

Anschauen könnt ihr es auf YouTube: https://youtu.be/zGw8AoYSFzU

Laravel Scheduler häufiger als jede Minute

Mit dem von Laravel nativen Scheduler lassen sich ganz einfach Artisan Commands jede Minute ausführen.

Doch was, wenn man einen Command noch häufiger ausführen muss, z.B. jede Sekunde.

Hier kann das Package von Spatie (@spatie_be) helfen. Mit spatie/laravel-short-schedule lassen sich Artisan Commands häufiger als jede Minute ausführen.

Ein sehr interessantes Package, was auf jeden Fall einen Blick wert ist.

CORS mal visualisiert

Mal sehen, was CORS tatsächlich tut und warum es tatsächlich unser Freund ist.
In diesem Blogbeitrag von Lydia Hallie (@lydiahallie) wird das „Cross-Origin Resource Sharing“ oder kurz CORS, mit dem jeder Entwickler schon mal zu tun gehabt hat, visuell erklärt.