Menu
Coddy logo textTech

Zusammenfassung – Organisiertes Projekt

Teil des Abschnitts Objektorientierte Programmierung der PHP-Journey von Coddy — Lektion 14 von 91.

challenge icon

Aufgabe

Einfach

Lassen Sie uns eine vollständige Blog-Anwendung mit einer ordnungsgemäßen Namespace-Organisation erstellen, die alles zusammenführt, was Sie über Namespaces, das use-Schlüsselwort und PSR-4-Autoloading gelernt haben.

Sie werden ein gut strukturiertes Projekt mit fünf Dateien erstellen, die zeigen, wie echte PHP-Anwendungen ihren Code organisieren:

  • src/Models/Author.php — Definieren Sie eine Author-Klasse im Namespace Blog\Models. Sie sollte eine public $name-Eigenschaft haben, einen Konstruktor, der den Namen akzeptiert und setzt, und eine getBio()-Methode, die "Author: " . $this->name zurückgibt.
  • src/Models/Post.php — Definieren Sie eine Post-Klasse im Namespace Blog\Models. Sie sollte die Eigenschaften public $title und public $author haben (wobei author ein Author-Objekt ist). Der Konstruktor akzeptiert einen Titel und ein Author-Objekt und setzt beide. Fügen Sie eine getSummary()-Methode hinzu, die $this->title . " by " . $this->author->name zurückgibt.
  • src/Services/Publisher.php — Definieren Sie eine Publisher-Klasse im Namespace Blog\Services. Sie sollte eine publish(Post $post)-Methode haben, die ein Post-Objekt akzeptiert und "Published: " . $post->title zurückgibt. Sie müssen die Post-Klasse mit dem use-Schlüsselwort importieren, da sie sich in einem anderen Namespace befindet.
  • vendor/autoload.php — Erstellen Sie einen PSR-4-Autoloader mit spl_autoload_register, der das Namespace-Präfix Blog\ dem Verzeichnis src/ zuordnet. Dieser einzelne Autoloader übernimmt das automatische Laden all Ihrer Klassen.
  • index.php — Ihr Einstiegspunkt. Binden Sie den Autoloader ein und verwenden Sie dann das use-Schlüsselwort, um Blog\Models\Author, Blog\Models\Post und Blog\Services\Publisher zu importieren. Erstellen Sie einen Author namens "Jane Smith", einen Post mit dem Titel "Getting Started with PHP" unter Verwendung dieses Autors und einen Publisher. Geben Sie die Biografie des Autors, die Zusammenfassung des Beitrags und das Ergebnis der Veröffentlichung des Beitrags aus (jeweils in einer eigenen Zeile).

Beachten Sie, wie der Publisher-Service vom Post-Modell abhängt — dies zeigt, wie Klassen in verschiedenen Namespaces zusammenarbeiten können, indem sie das Benötigte mit use-Anweisungen importieren.

Probier es selbst

<?php
// Den Autoloader einbinden
require_once 'vendor/autoload.php';

// TODO: Die notwendigen Klassen mit 'use'-Anweisungen importieren
// - Blog\Models\Author
// - Blog\Models\Post
// - Blog\Services\Publisher

// TODO: Erstelle einen Autor namens "Jane Smith"

// TODO: Erstelle einen Post mit dem Titel "Getting Started with PHP" unter Verwendung dieses Autors

// TODO: Erstelle einen Publisher

// TODO: Gib die Biografie des Autors aus

// TODO: Gib die Zusammenfassung des Posts aus

// TODO: Gib das Ergebnis der Veröffentlichung des Posts aus
?>

Alle Lektionen in Objektorientierte Programmierung