[RESOLU] Qu'est qu'un contrôleur ?

Mammouth du PHP | 790 Messages

19 nov. 2012, 17:56

bon, avant et en gros, j'initialisait des objets pour récupérer des variables et construire la page...
et j'en a arrivais ici:
<?php

if ($_GET['page'] == 'accueil'
        OR $_GET['page'] == 'presentation'
        OR $_GET['page'] == 'liste-blog') {
    $fichier = $_GET['page'];
    $nom_page = $_GET['page'];
    $vue = 'modules/' . $module->nomModule() . '/vues/' . $fichier . '.php';
} else {
    $fichier = 'accueil';
    $nom_page = 'accueil';
    $vue = 'modules/' . $module->nomModule() . '/vues/' . $fichier . '.php';
}
?>
et le mieux serait:
// Déclaration de la page d'accueil
$app->configIndexRoute("accueil", "", "modules/accueil.php");

// Déclaration des routes (nom, url, template)
$app->configRoute("presentation", "presentation.php", "modules/presentation.php");
$app->configRoute("liste-blog", "liste-blog.php", "modules/liste-blog.php");
si cela vous semblent correct, j'attaque la classe et normalement j'aurais réglé mes soucis de contrôleur qui ne sont pas des objets, n'est-ce pas ?
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Avatar du membre
Mammouth du PHP | 1609 Messages

19 nov. 2012, 20:09

Cela me semble correct. C'est bien plus sexy que la première version. ^^
Mais ce que je te suggérais c'est un système ou tu n'as pas besoin de configurer tes routes car elles seraient automatiquement définies à partir des 2 paramètres Module et Page.

Si ton module est blog et ta page est liste, tu aurais une classe blog avec une méthode liste. Donc tu n'as pas à configurer des routes.
Tu sais que la classe est rangée dans le dossier /module et que le nom du fichier est le nom du module. Donc require '/module/nom_du_module.php' suffit.
Tu sais que l'action s'appelle liste et c'est le nom de la méthode. Donc appeler module->page() suffit.
Tu sais par exemple en appelant ta vue blog-liste.php et en la mettant dans le dossier /vue ou elle est et comment elle s'appelle (module-page.php). Donc include '/vue/module-page.php' suffit.

Tu vois ce que je veux dire ?
Développeur web depuis + de 20 ans

Mammouth du PHP | 790 Messages

19 nov. 2012, 20:21

Oui, oui tu as raison Saian, c'est bien ce que je compte faire mais avant je remonte le système car je suis reparti de zero et je fait quelques tests car j'ai aussi intégré twig.
si il ni a rien a dire la dessus alors je met le post en résolu...
merci a tous,
PS: j'en profite pour dire que pour une fois j'ai presque tous compris tout de suite :D c'est bon de commencer a comprendre pour s'en sortir :lol:
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.