Ein Anfängerleitfaden zur Einrichtung eines Projekts in Laravel

In diesem Artikel werden wir die Bausteine von Laravel durchgehen und erklären, wie wir Laravel verwenden können, um ein kleines Projekt aufzubauen.

Laravel ist ein leistungsfähiges und elegantes PHP-Webanwendungsframework, das unter Entwicklern aufgrund seiner Einfachheit, Vielseitigkeit und starken Funktionen enorme Popularität erlangt hat. Im Laufe der Jahre ist Laravel zum bevorzugten PHP-Framework für sowohl große als auch kleine Projekte geworden.

Voraussetzungen: Herangehensweise an Laravel

Bevor wir uns mit der Laravel-Entwicklung beschäftigen, müssen wir sicherstellen, dass alle notwendigen Tools und Software installiert sind. Hier ist, was wir benötigen:

  • PHP. Laravel läuft auf PHP, also ist der erste Schritt, sicherzustellen, dass Sie PHP auf Ihrem System installiert haben. Wenn Sie sich nicht sicher sind, ob PHP installiert ist, öffnen Sie ein Terminal oder eine Eingabeaufforderung und geben Sie php -v ein. Wenn PHP installiert ist, sehen Sie eine Versionsnummer. Wenn nicht, müssen Sie es installieren.

    Um PHP auf Ihrem Computer zu installieren, haben wir einige Optionen:

    Lokale Installation. Sie können PHP direkt auf Ihrem Computer installieren. Besuchen Sie die PHP-Downloadsseite, um die neueste Version für Ihr Betriebssystem zu erhalten.

    Laravel Homestead. Für eine bessere und geordnetere Einrichtung, insbesondere wenn Sie neu in der PHP-Entwicklung sind, sollten Sie Laravel Homestead in Betracht ziehen. Homestead ist eine vor-konfigurierte Vagrant-Box, die eine vollständige Entwicklungsumgebung für Laravel bietet. Sie können die Installationsanweisungen hier finden.

  • Composer. Laravel verwendet Composer für die Abhängigkeitsverwaltung. Composer ist der Standard-PHP-Abhängigkeits-Manager und wird weit verbreitet und gut dokumentiert.

  • Laravel Installer. Laravel kann global auf unserem System mithilfe des Laravel Installers installiert werden, einer praktischen Kommandozeilen-Tools, das den Prozess zur Erstellung neuer Laravel-Projekte vereinfacht und optimiert. Um es global auf Ihrem System zu installieren, folgen Sie diesen Schritten:

    1. Öffnen Sie ein Terminal oder eine Eingabeaufforderung.
    2. Führen Sie den folgenden Composer-Befehl aus:
    composer global require laravel/installer
    

    Sobald die Installation abgeschlossen ist, stellen Sie sicher, dass das globale Bin-Verzeichnis von Composer in Ihrem System-„PATH“ enthalten ist, damit Sie den laravel Befehl von überall aus ausführen können.

    Wenn Sie eine leichtgewichtigere Alternative zu Homestead bevorzugen, könnten Sie Laravel Herd in Betracht ziehen. Herd ist eine Docker-basierte lokale Entwicklungsumgebung, die speziell für Laravel-Projekte angepasst ist. Sie können mehr über Herd und wie man es hier einrichtet erfahren.

Indem Sie Ihre Entwicklungsumgebung mit PHP, Composer und dem Laravel Installer einrichten (oder Optionen wie Homestead oder Herd erkunden), sind Sie gut vorbereitet, um Ihre Laravel-Reise zu beginnen. In den folgenden Abschnitten werden wir den Prozess durchlaufen, ein neues Laravel-Projekt zu erstellen, seine Verzeichnisstruktur zu erkunden und die Entwicklungsumgebung einzurichten.

Einrichten eines neuen Laravel-Projekts

Nun, da unsere Entwicklungsumgebung einsatzbereit ist, ist es an der Zeit, ein neues Laravel-Projekt zu erstellen. Um ein neues, „leeres“ Projekt zu erstellen, können wir folgenden Terminalbefehl verwenden:

composer create-project --prefer-dist laravel/laravel project-name

project-name sollte durch den tatsächlichen Projektname ersetzt werden. Dieser Befehl lädt die neueste Version von Laravel herunter und richtet ein neues Projektverzeichnis mit allen notwendigen Dateien und Abhängigkeiten ein.

Verzeichnisstruktur: Ein Blick in ein Laravel-Projekt

Nachdem ein neues Laravel-Projekt erstellt wurde, befinden wir uns in einer gut organisierten Verzeichnisstruktur. Das Verständnis dieser Struktur ist für eine effektive Laravel-Entwicklung entscheidend. Hier sind einige der wichtigsten Verzeichnisse und ihre Zwecke:

  • app. Dieser Ordner enthält die zentrale Logik unserer Anwendung, einschließlich Controllern, Modellen und Dienstanbietern.
  • bootstrap. Laravels Bootstrapping- und Konfigurationsdateien befinden sich hier.
  • config. Konfigurationsdateien für verschiedene Komponenten unserer Anwendung finden sich hier, was uns ermöglicht, Einstellungen wie Datenbankverbindungen und Dienste an einem einzigen Punkt im Projekt zu finden und anzupassen.
  • Database. In diesem Ordner definieren wir unsere Datenbankmigrationen und -seeder, die von Laravels Eloquent ORM verwendet werden. Eloquent vereinfacht die Verwaltung der Datenbank.
  • public. Öffentlich zugängliche Assets wie CSS, JavaScript und Bilder gehören hierher. Dieser Ordner enthält auch den Einstiegspunkt für unsere Anwendung, die Datei index.php.
  • resources. Unsere Anwendungsspezifischen, unkompilierten Assets wie Blade-Vorlagen, Sass und JavaScript werden hier gespeichert.
  • routes. Laravels Routenkonfiguration wird in diesem Ordner verwaltet.
  • storage. Temporäre und Cache-Dateien sowie Protokolle werden hier gespeichert.
  • vendor. Composer verwaltet die Abhängigkeiten unseres Projekts in diesem Ordner. Alle heruntergeladenen Bibliotheken befinden sich in diesem Ordner.

Konfiguration: Datenbanksetup und Umgebungsvariablen

Um die Datenbankverbindung zu konfigurieren, müssen wir die Datei .env im Stammverzeichnis des Projekts öffnen. Hier können wir den Datenbanktyp, Host, Benutzernamen, Passwort und den Datenbanknamen angeben. Dank Eloquent ORM unterstützt Laravel mehrere Datenbankverbindungen, was es für verschiedene Projektanforderungen vielseitig macht.

Verständnis der .env-Datei

Die .env Datei ist der Ort, an dem wir kontextspezifische Konfigurationswerte wie Datenbankverbindungsdetails, API-Schlüssel und andere Einstellungen definieren. Schauen wir uns ein einfaches Beispiel an, was man in einer .env Datei finden könnte:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=my_username
DB_PASSWORD=my_password

In diesem Beispiel:

  • DB_CONNECTION gibt den Typ des verwendeten Datenbanktreibers an (z.B. MySQL, PostgreSQL, SQLite).
  • DB_HOST gibt den Host an, an dem unsere Datenbankserver-Instanz lokalisiert ist.
  • DB_PORT gibt den Port an, auf dem der Datenbankserver läuft.
  • DB_DATABASE gibt den Namen der Datenbank an, mit der wir eine Verbindung herstellen möchten.
  • DB_USERNAME und DB_PASSWORD geben den Benutzernamen und das Passwort an, die zum Zugang zur Datenbank benötigt werden.

Verwendung von Umgebungsvariablen

Es ist entscheidend, vertrauliche Informationen wie Datenbankanmeldedaten sicher zu halten. Laravel ermutigt die Verwendung von Umgebungsvariablen, um dies zu erreichen. Anstatt unsere Anmeldedaten direkt in der .env Datei hart zu codieren, können wir sie in unseren Konfigurationsdateien referenzieren.

Zum Beispiel können wir in unseren Laravel-Konfigurationsdateien (die sich im Verzeichnis config/ befinden) die Datenbankkonfiguration so referenzieren:

'mysql' => [
    'driver' => env('DB_CONNECTION', 'mysql'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    // ...
],

Hier liest die env()-Funktion den Wert des angegebenen Umgebungsvariablen aus der .env-Datei ab. Wenn die Variable nicht gefunden wird, fällt sie auf einen Standardwert zurück, der als zweites Argument angegeben ist.

Durch die Verwendung von Konfigurationsdateien können wir sensible Daten an einem sichereren Ort speichern und Konfigurationen zwischen Umgebungen (wie Entwicklung und Produktion) leicht wechseln.

Mit unserem erstellten Laravel-Projekt, organisierten Verzeichnissen und konfigurierter Datenbank sind wir bereit, um unser Web-Anwendung zu starten. In den folgenden Abschnitten konzentrieren wir uns auf Routing, Controllers und die Arbeit mit Blade-Vorlagen für unsere Frontend-Ansichten.

Routing, Controllers und Views: Das Herz Ihrer Laravel-Anwendung

In Laravel arbeiten Routing, Controllers und Views zusammen, um HTTP-Anfragen zu behandeln und dynamische Webseiten zu rendern. Die Grundlagen dieser Konzepte sind für die Erstellung von Webanwendungen mit Laravel unerlässlich.

Kurz gesagt, werden HTTP-Anfragen vom Router empfangen, der dann weiß, welcher Controller die Aktion behandeln soll. Der Controller ist dafür verantwortlich, die Informationen zu verarbeiten und die verarbeiteten Informationen über Ansichten anzuzeigen.

Routing

In Laravel können wir Routen im routes/web.php-Datei definieren. Eine grundlegende Routendefinition sieht folgendermaßen aus:

Route::get('/welcome', function () {
    return view('welcome');
});

Dieses Beispiel richtet eine Route ein, die, wenn sie aufgerufen wird, die welcome Ansicht zurückgibt. Routen können auch verwendet werden, um Controller-Aktionen aufzurufen, wie oben erwähnt, was uns dabei hilft, den Code effizienter zu organisieren.

Erstellen eines Controllers

Controller dienen als Brücke zwischen unseren Routen und der Logik unserer Anwendung. Um einen Controller zu erstellen, können wir den make:controller Befehl verwenden:

php artisan make:controller YourControllerName

Unser neuer Controller enthält Methoden, die verschiedenen Aktionen in unserer Anwendung entsprechen, wie zum Beispiel das Anzeigen einer Seite oder das Verarbeiten von Formulardaten.

Ansichten und Blade-Vorlagen

Ansichten in Laravel sind dafür zuständig, die Daten unserer Anwendung den Benutzern vorzustellen. Standardmäßig verwendet Laravel einen Vorlagenergine namens Blade, der die Erstellung dynamischer, wiederverwendbarer Ansichten vereinfacht. Hier ist ein Beispiel für das Rendern einer Ansicht in einer Controller-Methode:

public function index()
{
    $data = ['name' => 'John'];
    return view('welcome', $data);
}

In diesem Beispiel wird die welcome Ansicht mit Daten gerendert, in diesem Fall wird 'name' an sie übergeben.

Blade ist ein sehr leistungsfähiges Vorlagenergine, das die Erstellung dynamischer Inhalte durch bedingte Anweisungen, Schleifen und so weiter ermöglicht.

Datenbankmigration und Befüllung

Laravels Datenbankmigration und -beseedung ermöglichen es uns, unser Datenbankschema zu definieren und es mit Initialdaten zu füllen. Man kann Migrations als versionierte Datenbankänderungen betrachten, und Beseedung als den Prozess der Hinzufügung von Beispieldaten.

Migrations und Beseedung sind äußerst leistungsfähige Konzepte, die eine Datenbankkonsistenz über verschiedene Umgebungen hinweg gewährleisten.

Um eine Migration zu erstellen, können wir den make:migration Befehl verwenden:

php artisan make:migration create_table_name

Anschließend können wir die generierte Migrationsdatei bearbeiten, um unser Tabellenlayout zu definieren, und dann Artisan verwenden, um die Migration auszuführen:

php artisan migrate

Beseedung wird häufig verwendet, um Tabellen mit Initialdaten für Tests und Entwicklung zu füllen. Um Seeders zu erstellen, können wir den make:seeder Befehl verwenden und sie mit:

php artisan db:seed

Erstellen von Modellen für die Datenbankinteraktion

Laravels Eloquent ORM vereinfacht die Datenbankinteraktion, indem sie es uns ermöglicht, mit Datenbanken so zu arbeiten, als wären sie Objekte. Um ein Modell zu erstellen, verwenden wir den make:model Befehl:

php artisan make:model YourModelName

Definieren Sie die Tabelle und Beziehungen im Modell, um einfache Datenabfrage und -manipulation zu ermöglichen. Zum Beispiel, um alle Einträge aus einer users Tabelle abzurufen:

$users = YourModelName::all();

Mit all diesem Wissen im Rücken, einschließlich Routing, Controllern, Ansichten, Datenbankmigration, Beseedung und Modellen, sind wir gut auf dem Weg, dynamische Webanwendungen mit Laravel zu erstellen. In den nächsten Abschnitten werden wir tiefer in die Erstellung einer einfachen CRUD-Anwendung eintauchen und weitere fortgeschrittene Laravel-Funktionen erkunden.

Erstellen einer einfachen CRUD-Anwendung in Laravel

Lasst uns unsere Laravel-Reise auf die nächste Stufe bringen, indem wir eine CRUD-Anwendung erstellen – in diesem Fall eine einfache Buchregistrierungs-Anwendung, in der wir Bücher erstellen, lesen, aktualisieren und löschen können. Diese praktische Übung hilft uns zu verstehen, wie CRUD-Operationen in Laravel umgesetzt werden.

Aus Gründen der Größe dieses Artikels konzentrieren wir uns nur auf die Erstellung der Startseite der Anwendung, also liegt es an Ihnen, diese Anwendung zu vollenden!

Schritt 1: Erstellen einer Migration für die Bücher-Tabelle

Um eine Migration für die Bücher-Tabelle zu generieren, verwenden wir folgenden Befehl:

php artisan make:migration create_books_table

Dieser Befehl erzeugt eine Migrationsdatei zur Erstellung der Bücher-Tabelle in der Datenbank. Als Nächstes bearbeiten wir die gerade erstellte Migrationsdatei (database/migrations/YYYY_MM_DD_create_books_table.php) und definieren die Tabellenstruktur:

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateBooksTable extends Migration
{
    public function up()
    {
        Schema::create('books', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('author');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('books');
    }
}

In dieser Migrationsdatei definieren wir die Struktur der Bücher-Tabelle, einschließlich ihrer Spalten (id, Titel, Autor, Zeitstempel). Anschließend führen wir die Migration aus, um die Tabelle zu erstellen:

php artisan migrate

Dieser Befehl führt die Migrationsdatei aus und erstellt die Bücher-Tabelle in der Datenbank.

Schritt 2: Erstellen eines Seeders für die Bücher-Tabelle

Als Nächstes möchten wir einen Seeder für die Bücher-Tabelle generieren, um sie mit einigen Initialdaten zu füllen:

php artisan make:seeder BooksTableSeeder

Dieser Befehl erzeugt eine Seeder-Datei zur Befüllung der Bücher-Tabelle mit Initialdaten.

Bearbeiten Sie die Seeder-Datei (database/seeders/BooksTableSeeder.php) und definieren Sie Beispieldaten für Bücher:

use Illuminate\Database\Seeder;

class BooksTableSeeder extends Seeder
{
    public function run()
    {
        DB::table('books')->insert([
            ['title' => 'Book 1', 'author' => 'Author A'],
            ['title' => 'Book 2', 'author' => 'Author B'],
            ['title' => 'Book 3', 'author' => 'Author C'],
        ]);
    }
}

In diesem Seeder-Datei definieren wir Beispieldaten für Bücher, die in die Tabelle books eingefügt werden sollen. In diesem speziellen Fall erstellen wir Bücher von 1 bis 3 und Autoren von A bis C.

Führen Sie den Seeder aus, um die Tabelle books zu füllen:

php artisan db:seed --class=BooksTableSeeder

Diese Befehlsfolge führt die Seeder-Datei aus und füllt die Tabelle books mit den definierten Beispieldaten.

Schritt 3: Erstellen eines Controllers

Erzeugen Sie einen Controller zur Verwaltung von Büchern:

php artisan make:controller BookController

Dieser Befehl erzeugt eine Controller-Datei (BookController.php), die Methoden zur Handhabung von CRUD-Operationen im Zusammenhang mit Büchern enthält. Mit dem erstellten Controller konzentrieren wir uns auf die Implementierung von CRUD-Methoden im BookController. Es befindet sich unter app/Http/Controllers/BookController.php:

use App\Book; // Importieren des Book-Modells

public function index()
{
    $books = Book::all();
    return view('books.index', compact('books'));
}

public function create()
{
    return view('books.create');
}

public function store(Request $request)
{
    $book = new Book;
    $book->title = $request->input('title');
    $book->author = $request->input('author');
    $book->save();

    return redirect()->route('books.index');
}

// Ähnlich implementieren Sie Methoden zum Bearbeiten, Aktualisieren, Anzeigen und Löschen

In dieser Controller-Datei definieren wir Methoden zur Handhabung von CRUD-Operationen im Zusammenhang mit Büchern. Zum Beispiel ruft die index-Methode alle Bücher aus der Datenbank ab und leitet sie an die index-Ansicht weiter, während die store-Methode auf Grundlage der über einen Formular eingereichten Daten ein neues Buch-Datensatz erstellt. Die create()-Methode ist dafür zuständig, das Formular zum Erstellen eines neuen Buch-Datensatzes anzuzeigen. Wenn ein Benutzer zur mit dieser Methode verknüpften Route navigiert, wird Laravel diese Funktion ausführen und eine Ansicht namens books.create zurückgeben.

Schritt 4: Erstellen von Ansichten

Erstellen Sie Ansichten für die Auflistung, Erstellung und Bearbeitung von Büchern im Ordner resources/views.

Beispielansicht (create.blade.php):

@extends('layout')

@section('content')
  <h1>Create a New Book</h1>
  <form method="POST" action="{{ route('books.store') }}">
    @csrf
    <div class="form-group">
      <label for="title">Title</label>
      <input type="text" name="title" class="form-control" id="title" placeholder="Enter book title">
    </div>
    <div class="form-group">
      <label for="author">Author</label>
      <input type="text" name="author" class="form-control" id="author" placeholder="Enter author name">
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
  </form>
  <a href="{{ route('books.index') }}">Back to the list</a>
@endsection

In diesem Beispiel enthält die create Ansicht ein Formular zur Hinzufügung eines neuen Buches. Das Formular leitet Daten an die store Methode des BookController weiter. Der @csrf Befehl generiert ein CSRF-Token zur Abwehr von Cross-Site Request Forgery.

Mit diesem Beispiel sollten Sie in der Lage sein, die Methoden des Controllers und die Ansichten für den Rest der CRUD-Operationen selbst zu implementieren, also los geht’s!

Schlussfolgerung

In diesem Artikel haben wir die Grundlagen einer Laravel-Anwendung betrachtet: wie wir die Kommandozeile verwenden können, um eine Anwendung zu erstellen, die Struktur einer Laravel-Anwendung und wie man eine CRUD-Anwendung in Laravel erstellt.

I hope this article was useful and that you’re now capable of using Laravel to create your applications and expand the information here with more advanced topics. More information on Laravel can be found at the official Laravel website.

Source:
https://www.sitepoint.com/laravel-project-setup-beginners-guide/