Hal pertama yang harus ditetapkan adalah apa yang sebenarnya perlu Anda lakukan, untuk memutuskan apakah kerangka kerja dan / atau MVC (atau pola desain lainnya) akan bermanfaat.
Kerangka kerja ada untuk menyediakan platform yang konsisten untuk pengembangan sementara biasanya memberikan solusi untuk persyaratan pemrograman umum (seperti interaksi basis data, pembuatan dan validasi formulir, otentikasi pengguna, dll.)
Untuk PHP setidaknya pola desain MVC / HMVC cenderung mendominasi kerangka kerja utama yang tersedia (misalnya Zend , CakePHP , CodeIgniter dll.) Tetapi ada banyak pola desain berbeda yang dapat digunakan.
MVC sangat populer karena menawarkan cara yang mapan dan dipahami untuk memisahkan pemodelan data dan pemrosesan logika dari lapisan tampilan / presentasi (sesuatu yang dianggap diinginkan untuk menghasilkan aplikasi yang kuat dan dapat diskalakan).
Penting untuk dicatat (dan seperti yang diungkapkan oleh @Marjan Venema dalam komentar untuk jawaban @ ElYusubov) bahwa MVC, MVP, MVVM, dan pola MV x lainnya (pada prinsipnya setidaknya) semua 'pola desain' yang sama.
Pola desain yang berbeda biasanya semua melayani (seringkali secara halus) tujuan yang berbeda dan dalam beberapa kasus dikembangkan dengan bahasa tertentu dalam pikiran. Namun 'pola desain' yang sebenarnya bukanlah aturan yang sulit dan cepat untuk pemrograman dan lebih merupakan pemahaman filosofis / idealogis tentang implementasi program dan persyaratan desain serta fungsi logis.
Penelitian adalah cara terbaik untuk mengetahui tentang berbagai prinsip pemrograman dan praktik terbaik, berikut ini beberapa tautan Wikipedia untuk membantu Anda memulai:
Dalam praktik tidak ada yang menghentikan Anda dari menerapkan 'pola' Anda sendiri, IMO cara terbaik adalah belajar sambil bekerja, bagi saya setidaknya saya tidak sepenuhnya memahami pola MVC sampai saya mulai mencoba menulis situs web yang menggunakannya.
Setelah Anda memahami beberapa konsep pemrograman dan praktik terbaik, Anda dapat menggunakannya untuk membangun sistem Anda sendiri untuk menyelesaikan masalah spesifik yang Anda hadapi dan untuk memenuhi kebutuhan Anda, apakah itu sesuai dengan 'pola' yang sudah ada atau tidak.
Jika Anda tidak memiliki serangkaian masalah khusus untuk dipecahkan maka mempelajari salah satu kerangka kerja yang umum adalah pilihan terbaik Anda.