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 réunissant tout ce que vous avez appris sur les espaces de noms, le mot-clé use et le chargement automatique PSR-4.

Vous allez créer un projet bien structuré composé de cinq fichiers, qui 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 posséder une propriété public $name, un constructeur qui accepte et définit le nom, ainsi qu’une méthode getBio() qui renvoie "Author: [name]".
  • src/Models/Post.php : définissez une classe Post dans l’espace de noms Blog\Models. Elle doit posséder les propriétés public $title et public $author (où author est un objet Author). Le constructeur accepte un titre et un objet Author, puis définit les deux propriétés. Ajoutez une méthode getSummary() qui renvoie "[title] by [author name]".
  • src/Services/Publisher.php : définissez une classe Publisher dans l’espace de noms Blog\Services. Elle doit posséder une méthode publish(Post $post) qui accepte un objet Post et renvoie "Published: [post title]". Vous devrez importer la classe Post à l’aide du mot-clé use, puisqu’elle se trouve dans un espace de noms différent.
  • vendor/autoload.php : créez un chargeur automatique PSR-4 à l’aide de spl_autoload_register qui associe le préfixe d’espace de noms Blog\ au répertoire src/. Ce chargeur automatique unique s’occupe de charger automatiquement toutes vos classes.
  • index.php : votre point d’entrée. Chargez le chargeur automatique, 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 dont le titre est "Getting Started with PHP" en utilisant cet auteur, ainsi qu’un Publisher. Affichez la biographie 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 montre comment des classes appartenant à des espaces de noms différents peuvent collaborer 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 des instructions 'use'
// - Blog\Models\Author
// - Blog\Models\Post
// - Blog\Services\Publisher

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

// TODO: Create a Post with title "Getting Started with PHP" using that author

// TODO: Créer un Publisher

// TODO: Afficher la bio de l'auteur

// TODO: Afficher le résumé du post

// TODO: Afficher le résultat de la publication du post
?>

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur PHP en ligne