Menu
Coddy logo textTech

Podsumowanie – uporządkowany projekt

Część sekcji Programowanie obiektowe ścieżki PHP w Coddy. Lekcja 14 z 91.

challenge icon

Wyzwanie

Łatwy

Zbudujmy kompletną aplikację blogową z odpowiednią organizacją przestrzeni nazw, łącząc wszystko, czego nauczysz się o przestrzeniach nazw, słowie kluczowym use i automatycznym ładowaniu PSR-4.

Utworzysz dobrze zorganizowany projekt składający się z pięciu plików, które pokażą, jak rzeczywiste aplikacje PHP organizują swój kod:

  • src/Models/Author.php: Zdefiniuj klasę Author w przestrzeni nazw Blog\Models. Powinna mieć właściwość public $name, konstruktor, który przyjmuje i ustawia imię, oraz metodę getBio(), która zwraca "Author: [name]".
  • src/Models/Post.php: Zdefiniuj klasę Post w przestrzeni nazw Blog\Models. Powinna mieć właściwości public $title i public $author (gdzie author jest obiektem Author). Konstruktor przyjmuje tytuł i obiekt Author, a następnie ustawia oba. Dodaj metodę getSummary(), która zwraca "[title] by [author name]".
  • src/Services/Publisher.php: Zdefiniuj klasę Publisher w przestrzeni nazw Blog\Services. Powinna mieć metodę publish(Post $post), która przyjmuje obiekt Post i zwraca "Published: [post title]". Musisz zaimportować klasę Post za pomocą słowa kluczowego use, ponieważ znajduje się ona w innej przestrzeni nazw.
  • vendor/autoload.php: Utwórz autoloader PSR-4 za pomocą spl_autoload_register, który mapuje prefiks przestrzeni nazw Blog\ na katalog src/. Ten pojedynczy autoloader automatycznie obsługuje ładowanie wszystkich Twoich klas.
  • index.php: Punkt wejścia aplikacji. Dołącz autoloader, a następnie użyj słowa kluczowego use, aby zaimportować Blog\Models\Author, Blog\Models\Post i Blog\Services\Publisher. Utwórz obiekt Author o imieniu "Jane Smith", obiekt Post z tytułem "Getting Started with PHP", używając tego autora, oraz obiekt Publisher. Wypisz biografię autora, podsumowanie wpisu i wynik opublikowania wpisu (każdy w osobnym wierszu).

Zwróć uwagę, że usługa Publisher zależy od modelu Post. Pokazuje to, jak klasy w różnych przestrzeniach nazw mogą ze sobą współpracować, importując potrzebne elementy za pomocą instrukcji use.

Spróbuj swoich sił

<?php
// Dołącz autoloader
require_once 'vendor/autoload.php';

// TODO: Zaimportuj potrzebne klasy za pomocą instrukcji 'use'
// - Blog\Models\Author
// - Blog\Models\Post
// - Blog\Services\Publisher

// TODO: Utwórz obiekt Author o nazwie "Jane Smith"

// TODO: Utwórz obiekt Post z tytułem "Getting Started with PHP", używając tego autora

// TODO: Utwórz obiekt Publisher

// TODO: Wypisz biogram autora

// TODO: Wypisz podsumowanie postu

// TODO: Wypisz wynik publikacji postu
?>

Wszystkie lekcje w sekcji Programowanie obiektowe

Poćwicz samodzielnie: Kompilator PHP online