Ich neige dazu, die Kontrolleure je nach ihrer Zuständigkeit für einen bestimmten Bereich einer Website/Anwendung aufzuteilen. Das macht die Pflege des Codes so viel einfacher. Außerdem gruppiere ich Controller (und Views, Models) in Modulen (Ordnern). Hier ist ein Beispiel aus einem aktuellen Projekt, an dem ich arbeite:
-
Blog
-
Beiträge
-
Kommentare
-
Kategorien
-
Einstellungen
-
Beiträge
-
Benutzer
Je komplexer eine Website ist, desto mehr Module verwende ich. Obwohl die meisten meiner Module nur einen "Index"-Controller enthalten, mag ich die Organisation, die sie bieten.
Dann verwende ich einen Router (Front-Controller), der einen REST-Stil URI auf das richtige Modul / Controller / Aktion zuordnet. Beispiel: mysite.com/blog/posts/view/7 würde Controller_Posts::view(7) aus dem Modul "blog" aufrufen. Ein zusätzlicher Vorteil der Verwendung von Modulen ist, dass ich spezifischere URIs haben kann, als wenn ich keine Module hätte. Obwohl ich vermute, dass dies durch die Verwendung eines Routers, der die Definition benutzerdefinierter Routen unterstützt, behoben werden könnte, aber das gefällt mir nicht so gut.
Wie bei vielen anderen Dingen auch, kommt es darauf an, womit man sich als Entwickler wohlfühlt, aber wir können uns wahrscheinlich darauf einigen, dass man mit mehr Organisation besser dran ist, solange man die Dinge nicht übermäßig kompliziert macht.
Nebenbei bemerkt, würde ich Ihnen empfehlen, ein Framework zu verwenden. Ich verstehe, wenn Sie nicht eines der bereits vorhandenen verwenden möchten, da ich diese auch vermieden habe. Ich habe schließlich mein eigenes geschrieben, das mir im letzten Jahr sehr gute Dienste geleistet hat. Es war eine großartige Lernerfahrung und es enthält nur das, was I wollen / brauchen. Davon abgesehen, möchten Sie vielleicht in Kohana und CakePHP aussehen - sie sind nicht übermäßig aufgeblasen IMO und sie werden definitiv sparen Sie Zeit, sollten Sie sich entscheiden, nicht zu schreiben, Ihre eigenen.