Voilà, c'est une question simple, mais je bloque dessus depuis un bon moment. En effet, si je comprends bien, l'url est décomposée, paramètre : $_GET, puis explode. $params[0], c'est le controller, $params[1], l'action dans ce controller. Mais voilà je suis un peu arrivé au bout, je ne comprends pas dans quelle logique charger des controllers non appelés par l'url, mais qui ont à voir avec un controller qui lui est bien appelé par l'url. Je ne sais pas si c'est très clair.

Par exemple, pour un controller "article" appelé par l'url, comment lui faire utiliser une classe "links" (une sorte d'autre controller mais pas appelé par l'url, qui aurait son propre modèle) qui irait chercher en base de données toutes les entrées de la table .links ayant dans le champ "controller_id" l'id du controller article (lui-même inscrit dans une table "controllers") ?

Voilà c'est ici que je bloque, est-ce que quelqu'un aurait de la doc plus approfondie ou une piste ?

2 réponses


Je crois que tu n'as pas besoin d'un autre controlleur.

Il y a 2 façons de coder :

  • 1 controlleur par table dans la BDD
  • 1 controller Public, un Admin, un Media, un User

D'après ce que tu dis, je pense que tu n'as besoin que d'un seul controlleur qui utilise 2 models.

Si je n'ai pas répondu à ta question ou si tu as d'autres questions, demande-moi ;)

Le prob c'est que je veux faire par exemple une partie "blog" sur mon site, que je fais appel à un controller "articles", qui lui même fait appel à un model "articles". Mais ce n'est pas tout, j'ai divisé ma base de données pour que ce soit plus pratiques et "relationnel", mais en fait, je m'y perd un peu. Mon cerveau n'est pas structuré pour imaginer comment faire plus loin :).

En bdd, J'ai une table "modules" ou là il y a une entrée donc "blog" (pour lancer genre ce module par defaut ou sur la page d'accueil du site). Ensuite j'ai une table menus, ou il y a un menu ou plusieurs de type blogs (ou plutôt "module_id" => id de l'entrée "blog" dans la table modules. Et ensuite j'ai une table links, qui contient tout les liens du site, avec champs "controller" et "action" pour créer l'url, mais aussi menu_id, qui peut mener vers un menu de type blog. Et puis près j'ai ma table .texts qui fonctionne sur le même principe, cette fois ci reliée à une table articles et qui contient le contenu texte de chaque article mais qui peut aussi contenir le contenu texte d'une page.

Voilà j'ai du mal à imaginer ces relations et surtout à les faire fonctionner ensemble. Surtout que chaque controller est censé appelé un model bien à lui. J'ai pensé à créer un array "dépendances" pour chaque controller spécifiquement appelé par l'url et qui appelerait un controller placé dans un dossier "lib" lui même appelant son model spécifique. Mais après je ne sais pas comment rendre tout ça propre.

C'est surtout au niveau de la logique que j'ai besoin d'être aidé parce que p-ê que c'est trop et j'ai imaginé un truc qui finalement m'a dépassé, un peu comme le doc Frankenstein :D

Toutefois, je ne suis qu'un modeste chaton ninja.

Merci pour cette réponse.