Menu
Coddy logo textTech

Récapitulatif - Projet organisé

Fait partie de la section Programmation Orientée Objet du Journey PHP de Coddy — leçon 14 sur 91.

challenge icon

Défi

Facile

Construisons une application de blog complète avec une organisation appropriée des espaces de noms, en regroupant tout ce que vous avez appris sur les espaces de noms, le mot-clé use et l'autochargement PSR-4.

Vous allez créer un projet bien structuré avec cinq fichiers qui démontrent comment les applications PHP réelles organisent leur code :

  • src/Models/Author.php — Définissez une classe Author dans l'espace de noms Blog\Models. Elle doit avoir une propriété public $name, un constructeur qui accepte et définit le nom, et une méthode getBio() qui retourne "Author: [name]".
  • src/Models/Post.php — Définissez une classe Post dans l'espace de noms Blog\Models. Elle doit avoir des propriétés public $title et public $author (où author est un objet Author). Le constructeur accepte un titre et un objet Author, en définissant les deux. Ajoutez une méthode getSummary() qui retourne "[title] by [author name]".
  • src/Services/Publisher.php — Définissez une classe Publisher dans l'espace de noms Blog\Services. Elle doit avoir une méthode publish(Post $post) qui accepte un objet Post et retourne "Published: [post title]". Vous devrez importer la classe Post en utilisant le mot-clé use puisqu'elle se trouve dans un espace de noms différent.
  • vendor/autoload.php — Créez un autochargeur PSR-4 en utilisant spl_autoload_register qui mappe le préfixe d'espace de noms Blog\ au répertoire src/. Cet autochargeur unique gère automatiquement le chargement de toutes vos classes.
  • index.php — Votre point d'entrée. Appelez l'autochargeur avec require, puis utilisez le mot-clé use pour importer Blog\Models\Author, Blog\Models\Post et Blog\Services\Publisher. Créez un Author nommé "Jane Smith", un Post avec le titre "Getting Started with PHP" en utilisant cet auteur, et un Publisher. Affichez la bio de l'auteur, le résumé de l'article et le résultat de la publication de l'article (chacun sur sa propre ligne).

Remarquez comment le service Publisher dépend du modèle Post — cela démontre comment des classes dans différents espaces de noms peuvent travailler ensemble en important ce dont elles ont besoin avec des instructions use.

Essayez vous-même

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

// TODO: Importer les classes nécessaires en utilisant les instructions 'use'
// - Blog\Models\Author
// - Blog\Models\Post
// - Blog\Services\Publisher

// TODO: Créer un auteur nommé "Jane Smith"

// TODO: Créer un article avec le titre "Getting Started with PHP" en utilisant cet auteur

// TODO: Créer un éditeur (Publisher)

// TODO: Afficher la biographie de l'auteur

// TODO: Afficher le résumé de l'article

// TODO: Afficher le résultat de la publication de l'article
?>

Toutes les leçons de Programmation Orientée Objet