Pierwszą rzeczą do ustalenia jest to, co dokładnie musisz zrobić, aby zdecydować, czy ramowa i / lub MVC (lub inny wzorzec projektowy) byłby korzystny.
Ramy mają zapewniać spójną platformę programistyczną, a jednocześnie zazwyczaj zapewniać rozwiązania dla wspólnych wymagań programistycznych (takich jak interakcja z bazą danych, tworzenie i sprawdzanie formularzy, uwierzytelnianie użytkowników itp.)
W PHP przynajmniej wzorzec projektowy MVC / HMVC ma tendencję do dominowania w dostępnych ramach głównego nurtu (np. Zend , CakePHP , CodeIgniter itp.), Ale istnieje wiele różnych wzorców projektowych, których można użyć.
MVC jest tak popularny, ponieważ oferuje ustalony i zrozumiały sposób oddzielania modelowania danych i logiki przetwarzania od warstwy widoku / prezentacji (co jest uważane za pożądane w celu stworzenia solidnych, skalowalnych aplikacji).
Należy zauważyć (i jak to wyraził @Mjanjan Venema w komentarzu do odpowiedzi @ ElYusubova), że MVC, MVP, MVVM i inne wzory MV x są (co najmniej zasadniczo) tym samym „wzorem”.
Zazwyczaj różne wzorce projektowe służą (często subtelnie) różnym celom, aw kilku przypadkach zostały opracowane z myślą o konkretnym języku. Jednak prawdziwy „wzorzec projektowy” nie jest twardą i szybką zasadą programowania i jest bardziej filozoficznym / ideologicznym rozumieniem wymagań dotyczących wdrażania i projektowania programów oraz funkcji logicznych.
Badania to najlepszy sposób na poznanie różnych zasad programowania i najlepszych praktyk, oto kilka linków do Wikipedii na początek:
W praktyce nic nie stoi na przeszkodzie, abyś wdrożył swój własny „wzorzec”, IMO najlepiej jest uczyć się, robiąc, dla mnie przynajmniej nie w pełni zrozumiałem wzorzec MVC, dopóki nie zacząłem pisać strony internetowej z jego wykorzystaniem.
Po zapoznaniu się z niektórymi pojęciami dotyczącymi programowania i najlepszymi praktykami można je wykorzystać do zbudowania własnego systemu w celu rozwiązania określonych problemów i spełnienia potrzeb, niezależnie od tego, czy jest on zgodny z ustalonym „wzorcem”, czy nie.
Jeśli nie masz określonego zestawu problemów do rozwiązania, najlepszym rozwiązaniem jest nauka jednej ze wspólnych ram.