Contrôleurs
Les contrôleurs Elementum simplifient le développement en fournissant des méthodes pratiques pour gérer les services, les réponses et les redirections.
Accès aux services
Méthodes de raccourci
Accédez facilement aux services courants :
customize()→AppareancepostTypes()→PostTypesadminPages()→AdminPagestemplates()→Templatesflash()→FlashBag
Accès générique aux services
Pour les services non listés, utilisez getService() avec la constante NAME du service :
$router = $this->getService(Router::NAME);
Gestion des réponses
Affichage de vues
// Affiche une vue Twig avec des données optionnelles $this->render('mon-template.html.twig', ['titre' => 'Accueil']);
Réponses JSON
// Retourne une réponse JSON $this->json(['status' => 'success', 'data' => $mesDonnees]);
Gestion des redirections
Redirections de base
// Redirection vers une URL $this->redirect('https://exemple.com/mapage'); // Redirection vers une route nommée $this->redirectToRoute('nom_de_ma_route');
Redirections avancées
// Retour à la page précédente (ou page d'accueil) $this->redirectBack(); // Redirection vers un article $this->redirectToPost(123); // Par ID $this->redirectToPost($monObjetPost); // Ou par objet WP_Post
Récupération de contenu
// Récupère un type de contenu personnalisé $monTypeContenu = $this->getPostType('mon-type'); // Fonctionne aussi avec les types natifs $articles = $this->getPostType('post'); $pages = $this->getPostType('page');
Helper Response
Le helper Response (namespace Elementum\Helpers) permet de définir le code de statut HTTP ou d'envoyer une réponse JSON depuis n'importe quel controller.
Response::send(int $code)
Définit le code de statut HTTP. Pour un 404, appelle également $wp_query->set_404() en interne.
use Elementum\Helpers\Response; Response::send(404); return $this->render('@elementum/login/404.html.twig', []);
Response::json(array $data)
Encode le tableau en JSON et arrête immédiatement l'exécution (équivalent à wp_send_json()).
Response::json([ 'success' => true, 'message' => 'Élément créé.', ]);
Messages flash
Ajout de messages
// Message personnalisé $this->flashAdd('info', 'Action effectuée avec succès'); // Méthodes dédiées $this->flashSuccess('Opération réussie !'); $this->flashError('Une erreur est survenue'); $this->flashWarning('Attention : action requise'); $this->flashInfo('Information importante');
Types de messages disponibles
flashSuccess()→ Clé 'success'flashError()→ Clé 'error'flashWarning()→ Clé 'warning'flashInfo()→ Clé 'info'