Créer son Framework PHP › Les Métadonnées (SEO)
Le SEO est crucial dans l'éllaboration de la plupart des sites web. Ajoutons dynamiquement pour chacune de nos pages un titre et une description.
10 chapitres
Côté contrôleur
S’il y a bien un endroit où des données dynamiques sont transmises aux templates, c’est dans les contrôleurs.
En ce sens, nous allons ajouter dans le tableau de données de la fonction render(), une clé nommée seo, contenant le titre ainsi que la méta-description de la page.
namespace App\Controller;
use App\Manager\ArticleManager;
use Plugo\Controller\AbstractController;
class ArticleController extends AbstractController {
public function index() {
$articleManager = new ArticleManager();
return $this->renderView('article/index.php', [
'articles' => $articleManager->findAll(),
'seo' => [
'title' => 'Le blog',
'description' => 'Découvrez de nombreux articles 100% tech sur notre blog !'
]
]);
}
// ...
}Côté layout
title et description étant transmis via l’objet $data, il est possible d’en faire usage depuis le layout du site web avec $data['seo'].
Mettons à jour le layout en ajoutant l’extrait de PHP/HTML suivant dans le <head> :
<head>
<!-- ... -->
<title>
<?php if (isset($data['seo']['title'])) echo $data['seo']['title'] . ' - '; ?>
Plugo
</title>
<?php if (isset($data['seo']['description'])) { ?>
<meta name="description" content="<?= $data['seo']['description'] ?>">
<?php } ?>
</head>