Menu
Coddy logo textTech

Riepilogo - Progetto organizzato

Fa parte della sezione Programmazione orientata agli oggetti del percorso PHP di Coddy. Lezione 14 di 91.

challenge icon

Sfida

Facile

Costruiamo un'applicazione blog completa con un'organizzazione adeguata degli spazi dei nomi, mettendo insieme tutto ciò che hai imparato sugli spazi dei nomi, sulla parola chiave use e sul caricamento automatico PSR-4.

Creerai un progetto ben strutturato con cinque file che mostrano come le applicazioni PHP reali organizzano il proprio codice:

  • src/Models/Author.php: Definisci una classe Author nello spazio dei nomi Blog\Models. Dovrebbe avere una proprietà public $name, un costruttore che accetta e imposta il nome e un metodo getBio() che restituisce "Author: [name]".
  • src/Models/Post.php: Definisci una classe Post nello spazio dei nomi Blog\Models. Dovrebbe avere le proprietà public $title e public $author (dove author è un oggetto Author). Il costruttore accetta un titolo e un oggetto Author, impostandoli entrambi. Aggiungi un metodo getSummary() che restituisce "[title] by [author name]".
  • src/Services/Publisher.php: Definisci una classe Publisher nello spazio dei nomi Blog\Services. Dovrebbe avere un metodo publish(Post $post) che accetta un oggetto Post e restituisce "Published: [post title]". Dovrai importare la classe Post usando la parola chiave use, poiché si trova in uno spazio dei nomi diverso.
  • vendor/autoload.php: Crea un autoloader PSR-4 usando spl_autoload_register che associa il prefisso dello spazio dei nomi Blog\ alla directory src/. Questo singolo autoloader si occupa di caricare automaticamente tutte le tue classi.
  • index.php: Il punto di ingresso. Includi l'autoloader, poi usa la parola chiave use per importare Blog\Models\Author, Blog\Models\Post e Blog\Services\Publisher. Crea un oggetto Author chiamato "Jane Smith", un oggetto Post con il titolo "Getting Started with PHP" usando quell'autore e un oggetto Publisher. Stampa la biografia dell'autore, il riepilogo del post e il risultato della pubblicazione del post (ciascuno su una riga separata).

Nota come il servizio Publisher dipenda dal modello Post. Questo mostra come le classi in spazi dei nomi diversi possano collaborare importando ciò di cui hanno bisogno con le istruzioni use.

Provalo tu

<?php
// Carica l'autoloader
require_once 'vendor/autoload.php';

// TODO: Importa le classi necessarie usando le istruzioni 'use'
// - Blog\Models\Author
// - Blog\Models\Post
// - Blog\Services\Publisher

// TODO: Crea un Author di nome "Jane Smith"

// TODO: Crea un Post con il titolo "Getting Started with PHP" usando quell'autore

// TODO: Crea un Publisher

// TODO: Stampa la biografia dell'autore

// TODO: Stampa il riepilogo del post

// TODO: Stampa il risultato della pubblicazione del post
?>

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore PHP online