Als Erstes müssen Sie festlegen, was genau Sie tun müssen, um zu entscheiden, ob ein Framework und / oder eine MVC (oder ein anderes Entwurfsmuster) von Vorteil sind.
Frameworks bieten eine konsistente Plattform für die Entwicklung und bieten in der Regel Lösungen für allgemeine Programmieranforderungen (z. B. Datenbankinteraktion, Formularerstellung und -validierung, Benutzerauthentifizierung usw.).
Zumindest für PHP dominiert das MVC / HMVC- Entwurfsmuster in der Regel die verfügbaren Mainstream-Frameworks (z. B. Zend , CakePHP , CodeIgniter usw.), aber es gibt viele verschiedene Entwurfsmuster, die verwendet werden könnten.
MVC ist so beliebt, weil es eine etablierte und verständliche Möglichkeit bietet, Datenmodellierungs- und Verarbeitungslogik von der Ansichts- / Präsentationsschicht zu trennen (was als wünschenswert angesehen wird, um robuste, skalierbare Anwendungen zu erstellen).
Es ist wichtig zu erwähnen (und wie @ Marjan Venema in einem Kommentar zu @ ElYusubovs Antwort ausdrückte), dass MVC, MVP, MVVM und die anderen MV x -Muster (im Prinzip zumindest) alle dasselbe "Entwurfsmuster" sind.
Typischerweise dienen unterschiedliche Entwurfsmuster (oft subtil) unterschiedlichen Zwecken und wurden in mehreren Fällen unter Berücksichtigung einer bestimmten Sprache entwickelt. Ein echtes 'Designmuster' ist jedoch keine feste Regel für die Programmierung, sondern vielmehr ein philosophisches / idealogisches Verständnis der Programmimplementierung, der Designanforderungen und der logischen Funktionen.
Nachforschungen sind der beste Weg, um sich über verschiedene Programmierprinzipien und Best Practices zu informieren. Hier einige Wikipedia-Links, um Ihnen den Einstieg zu erleichtern:
In der Praxis hindert Sie nichts daran, Ihr eigenes "Muster" zu implementieren. Der beste Weg, IMO zu lernen, ist für mich, zumindest, das MVC-Muster nicht vollständig zu verstehen, bis ich anfing, eine Website damit zu schreiben.
Sobald Sie einige der Programmierkonzepte und Best Practices verstanden haben, können Sie diese verwenden, um Ihr eigenes System zu erstellen, um die spezifischen Probleme zu lösen, mit denen Sie konfrontiert sind, und um Ihre Anforderungen zu erfüllen, unabhängig davon, ob sie einem festgelegten Muster entsprechen oder nicht.
Wenn Sie keine spezifischen Probleme zu lösen haben, ist das Erlernen eines der gängigen Frameworks die beste Wahl.