Не вижу минусов. Модульный подход более удобен. Просто есть несколько подходов создания сайтов.
Самое простое (с чего, как правило начинаются всякого рода страницы) - сделать такой сайт:
PHP:
<?
include('header.php');
$page=isset($_GET['page'])?($_GET['page']):"main";
include($page.".php");
include('footer.php');
?>
Где header.php - шапка, footer.php - жопа, а main.php - главная страница.
Остальные страницы оформляются в виде любых файлов, например about.php и вызываются примерно так:
Недостатки метода налицо:
1) Слишком опасный код. Даже если учесть много всяких "если".
2) Неудобно менять дизайн, если логика не соответствует логике "<бошка><контент><жопа>".
3) код почти неминуемо смешивается с вёрсткой.
Лучше всего воспользоваться готовым фреймворком или написать свой.
Работает стандартный (на сегодняшний день) фреймворк примерно так:
- .htaccess направляет URI запросы на ядро
- ядро подгружается со всеми необходимыми обработчиками и базовыми модулями
- парсер запросов обрабатывает URI, выясняя какому модулю отдать обработку
- подгружается нужный модуль
- формируется результат работы модуля
- всё это отдаётся в браузер
Эта красота, конечно, чуть более ресурсоёмка, но абсолютно логична, последовательна, и практически совершенна. Ядро может вести логи разного уровня детализированности, обрабатывать ошибки, ЧПУ, проверять переменные в GET, POST, COOKIES, и множество чего ещё.
Модуль здесь как правило представляет из себя PHP файл, лежащий в особой папке с другими модулями. Внутри класс или несколько классоов со стандартными для фреймворка интерфейсами вызова.
Прелесть здесь в том, что модуль обращается к БД, данным об авторизованном пользователе, различным переменным и константам, которые уже были объявлены и выданы модулю. И сам модуль получается гораздо короче и нагляднее.
Таким образом, программировать новые функции становится удобно даже через год.
А если что-к-чему ещё и описано, то дополнять / переписывать код сможет при желании совершенно другой человек.
Так что если вы планируете кодить с перспективами на развитие, удобство и расширение - используйте фреймворки и модульный подход.