Les bases
Travaux pratiques
L'objet
Exercices
Travaux Pratique 2
Conclusion

Maintenant que l'on a nos données de tests nous allons pouvoir attaquer le vif du sujet et mettre en place la page d'accueil. Page qui permettra de lister les 12 derniers articles de notre application.

Une classe pour représenter nos données

Lorsque l'on récupère des données il peut être intéréssant de les organiser dans des objets. Cela offre 2 avantages :

  • On peut créer des "getters" qui permettent de contrôler le type de retour pour chacun de nos champs (par exemple on peut convertir les date MySQL en DateTime PHP).
  • On a des objets avec des signatures connues et il est plus simple d'identifier leur structure lorsqu'ils sont utilisé en paramètre dans des méthodes.
namespace App\Model;

use \DateTime;

class Post {

    private $id;

    private $slug;

    private $name;

    private $content;

    private $created_at;

    private $categories = [];

    public function getName (): ?string
    {
        return $this->name; 
    }

    public function getCreatedAt (): DateTime
    {
        return new DateTime($this->created_at);
    }

    public function getSlug (): ?string
    {
        return $this->slug;
    }

    public function getID (): ?int
    {
        return $this->id;
    }

}

On le voit ici, la méthode getCreatedAt() permet de récupérer un datetime, ce qui permet de formater facilement les dates :

<p class="text-muted"><?= $post->getCreatedAt()->format('d F Y') ?></p>