Intuitiveness and Speed of Writing Code

Laravel - Intuitivität und Geschwindigkeit beim Schreiben von Code

Laravel und Symfony sind Frameworks, die sehr oft miteinander verglichen werden, und es gibt viel Diskussion darüber in den Foren. Heute möchte ich mich jedoch nicht auf Vergleiche konzentrieren, sondern die Vorteile von Laravel zeigen und beschreiben, was bei mir den größten, offensichtlich positiven Eindruck hinterlassen hat.

Artisan ist Ihr bester Freund

Artisan ist die CLI, die mit Laravel verbunden ist. Dank ihr können Sie mit dem entsprechenden Befehl viele Aufgaben schnell ausführen, die normalerweise viel Zeit in Anspruch nehmen würden. Welche Aufgaben sind das? Darüber habe ich weiter unten geschrieben.

Frontend-Presets / Laravel UI

Die richtige Frontend-Technologie zu konfigurieren kann viel Zeit in Anspruch nehmen, besonders wenn es Ihr erstes Mal ist. Wenn Sie Laravel von Anfang an einsetzen, können Sie die drei verfügbaren Presets nutzen: bootstrap, vue oder react. Mit der Hilfe des zuvor erwähnten Artisan können Sie schnell wählen, welche Technologie Sie im Projekt einsetzen werden. Für dieses Beispiel nehmen wir an, Sie müssen react verwenden. Bis zur Version 5 von Laravel benötigten Sie dafür nur einen einzigen Befehl:

php artisan preset react

Seit Version 6 müssen Sie zuerst das Laravel UI-Paket mithilfe eines Composer installieren:

composer require laravel/ui

und dann die richtige Auswahl für Ihr Projekt treffen, z.B.:

php artisan ui react

Das ist jedoch nicht alles, denn Sie sind nicht auf diese drei Technologien beschränkt. Sie können auch eigene Presets hinzufügen (z.B. tailwindcss), und auf GitHub finden Sie viele Beispiele, wie dies zu tun ist.

Authentifizierung

Jede aktuell entwickelte Anwendung muss ein Anmelde-, Benutzerregistrierungs- und Passwortvergabesystem haben. Alles von Grund auf neu zu erstellen, ergibt keinen Sinn. Sie können auch fertige Lösungen verwenden, aber im Fall von Laravel war es unmöglich, Dinge noch mehr zu vereinfachen.

Bis zur Version 5 benötigten Sie nur einen einzigen Befehl

php artisan make:auth

Seit Version 6 müssen Sie erneut das Laravel UI-Paket verwenden

php artisan ui:auth

Der obige Befehl erstellt die entsprechenden Pfade in Routing, Controllern und Ansichten für eingeloggte und nicht eingeloggte Personen. Wenn das jedoch noch nicht genug für Sie ist, können Sie auch Anmelde-, Registrierungs- und Passwortwiederherstellungsformulare erstellen:

php artisan ui react –auth

Eloquent

Das ist vielleicht der größte Vorteil von Laravel. Eloquent ist ein ORM basierend auf dem ActiveRecord-Modell. Es ermöglicht Ihnen, auf eine sehr intuitive Weise mit der Datenbank zu arbeiten. Dank ihm können Sie das Schreiben von rohen SQL-Abfragen vergessen, und die Arbeit mit der Datenbank wird unglaublich angenehm. Lassen Sie uns einige Beispiele unten ansehen:

User::where(‘first_name’, ‘Andrzej’)→orderBy(‘last_name’, ‘DESC’)→get();

Der obige Code bedarf eigentlich keines Kommentars: Laden Sie die Benutzer herunter, deren Vorname Andrzej ist und sortieren Sie die Ergebnisse nach ihrem Nachnamen. Wenn Sie jedoch statt einer Liste aller Benutzer nur das erste Ergebnis benötigen, ersetzen Sie einfach get() durch first():

User::where(‘first_name’, ‘Andrzej’)→orderBy(‘last_name’, ‘DESC’)→first();

Außerdem müssen Sie oft eine 404-Fehlerseite anzeigen, falls Sie in der Datenbank keinen Datensatz finden. In diesem Fall müssen Sie lediglich where durch findOrFail ersetzen

User::findOrFail(‘first_name’, ‘Andrzej’)→orderBy(‘last_name’, ‘DESC’)→get();

Die obigen Beispiele sind nur ein kleiner Einblick in das, was Eloquent kann. Sie können ebenso einfach Datensätze in der Datenbank erstellen, bearbeiten oder löschen. Es ist auch möglich, Beziehungen zwischen Tabellen zu erstellen: eins-zu-eins, eins-zu-viele oder viele-zu-viele.

Migrationen

Als weiteres Beispiel möchte ich das Erstellen, Bearbeiten und Löschen von Tabellen in einer Datenbank vorstellen. Angenommen, Sie müssen eine neue Tabelle mit Produkten erstellen, die in einem Geschäft sein werden. Zu diesem Zweck benötigen Sie auch ein Modell, das für die Datenverarbeitung verantwortlich ist. Alles erstellen Sie mit einem einzigen Befehl:

php artisan make:model Product –migration

Das Product.php-Modell wird im app/model-Verzeichnis (oder app im Fall von Laravel 7 oder früher) erstellt. Das Flag – migration bedeutet, dass Sie zusätzlich eine Migration für dieses Modell erstellt haben, die sich im database/migration-Verzeichnis befindet. Im up() -Methode definieren Sie den Namen der Tabelle und den Datentyp. Zum Beispiel:

public function up()

{

   Schema::create('products', function (Blueprint $table) {

      $table->id();

      $table->string('name');

      $table->text('description');

      $table->float('price');

      $table->integer('stock');

      $table->tinyInteger('isActive');

      $table->timestamps();

   });

}

Die Timestamps-Methode erstellt zusätzliche created_at- und updated_at-Spalten, die automatisch mit den entsprechenden Daten vervollständigt werden, wenn der Datensatz erstellt oder geändert wird.

Schließlich, um die obige Tabelle in einer Datenbank zu erstellen, müssen Sie folgendes ausführen:

php artisan migrate

oder

php artisan migrate:fresh

um alle vorherigen Daten zu löschen und die gesamte Tabellenstruktur von Grund auf neu zu erstellen.

Es ist erwähnenswert, dass der Name der Tabellen basierend auf dem Modell (Product) erstellt und automatisch von der Einzahl in die Mehrzahl umgewandelt wurde (products).

Datenbank-Seeders

Wenn unsere Laravel-Entwickler neue Anwendungen erstellen, während sie PHP-Entwicklungsdienstleistungen für unsere Kunden bereitstellen, stoßen wir oft auf die Notwendigkeit, die Datenbank mit Testdaten zu ergänzen, z.B. mit Benutzern, Blogeinträgen oder Produkten im Geschäft. Die PHP Faker-Bibliothek eignet sich hervorragend dafür, aber auch in diesem Fall sind die Laravel-Entwickler einen Schritt weiter gegangen und präsentieren fertige Lösungen. Angenommen, Sie müssen hundert Benutzer in der Datenbank erstellen.

Zuerst müssen Sie mit dem Befehl eine Datenbank-Factory erstellen:

php artisan make:factory UserFactory -m User

Wenn Sie zum database/factory-Pfad gehen, sehen Sie, dass eine neue UserFactory.php-Datei erstellt wurde. In dieser Datei – und genauer gesagt in der definition()-Methode – definieren Sie, welche Felder und welche Daten in der Benutzertabelle ausgefüllt werden.

public function definition()

{

   return [

      'first_name' => $this→faker→firstName,

      'last_name' => $this->faker->lastName,

      'email' => $this->faker->unique()->safeEmail,

      'email_verified_at' => now(),

      'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi',

// Passwort

      'remember_token' => Str::random(10),

   ];

}

Natürlich müssen die Namen der Schlüssel in der Tabelle mit den Namen der Spalten in der Datenbanktabelle übereinstimmen.

Der nächste Schritt ist das Erstellen eines Seeders. Erneut müssen Sie dafür Artisan verwenden.

php artisan make:seeder UsersTableSeeder

In der neu erstellten database/seeders/UsersTableSeeder.php-Datei müssen Sie nur definieren, wie viele Benutzer erstellt werden sollen.

public function run()

{

   \App\Models\User::factory()->count(100)->create();

}

Schließlich müssen Sie in der database/seeders/DatabaseSeeder.php-Datei hinzufügen:

public function run()

{

   $this->call(UsersTableSeeder::class);

}

Und das war es! Natürlich starten Sie den Seeder mit Artisan:

php artisan db:seed

E-Mail-Nachrichten

Das Konfigurieren und Gestalten ansprechend aussehender E-Mail-Nachrichten erfordert Stunden an Arbeit. Hier jedoch wurde ebenfalls alles so weit wie möglich vereinfacht. Natürlich sollten Sie mit dem Befehl beginnen:

php artisan make:mail HelloWorldMail –markdown emails.hello-world

Dank diesem Befehl wurden zwei Dateien erstellt. Erstens: Wenn Sie zu resources/views/mails/hello-world/blade.php gehen, können Sie Ihre E-Mail-Nachricht bearbeiten. Zweitens: Eine \App\Mail\HelloWorldMail-Klasse wurde erstellt, die Sie beim Senden einer Nachricht verwenden müssen. Sie können dort auch Variablen an die hello-world.blade.php-Ansicht übergeben, wie z.B. den Namen des Benutzers, an den Sie die Nachricht senden.

Die Integration mit mialgun oder mailtrap ist ebenfalls sehr einfach. Im Fall der letzteren reicht es aus, den Benutzernamen und das Passwort in der .env-Datei einzugeben.

Telescope

Abschließend möchte ich ein großartiges Werkzeug vorstellen, das es Ihnen ermöglicht, Ihre Anwendung zu debuggen und zu optimieren. Dank Telescope können Sie sehen, was wirklich "im Hintergrund" während des Betriebs von Laravel vor sich geht. Sie installieren Telescope mit drei Befehlen:

composer require laravel/telescope
php artisan telescope:install
php artisan migrate

Jetzt müssen Sie nur zu /telescope gehen und Sie haben Zugriff auf Anfragen, mit Artisan ausgeführte Befehle, Fehler, Protokolle, Datenbankabfragen und vieles mehr. Ich empfehle jedem, sich ein wenig mehr Zeit zu nehmen, um sich mit diesem Tool vertraut zu machen.

telescope

Zusammenfassung

Bei Droptica verwenden wir Laravel täglich. Daher freue ich mich, dass, wie Sie in den obigen Beispielen sehen können, viele zeitaufwändige Prozesse während der Anwendungsentwicklung so weit wie möglich vereinfacht wurden. Darüber hinaus beschränkt sich das effiziente Schreiben von Code hauptsächlich darauf, Artisan-Befehle zu kennen, die den Großteil der Arbeit für Sie erledigen. Laravels Dokumentation wurde auch auf eine sehr einfache und klare Weise erstellt, und Sie können viele hilfreiche Threads in Foren wie StackOverflow oder Laracasts finden.

Unten finden Sie Links zur Dokumentation der in diesem Artikel besprochenen spezifischen Aspekte:

3. Best practices for software development teams