фронт-контроллер очень хорошо подходит для веб-среды, что позволяет вам направлять все запросы к вашему приложению. Так как HTTP не имеет состояния и пользователь может в некотором смысле случайно наткнуться на части вашего приложения случайно (т. е. при попадании случайных URL-адресов), фронт-контроллер позволяет вам определить точку входа вашего приложения и реагировать соответствующим образом.
edit : в ответ на комментарии, я думаю, что путаница может заключаться в том, что java имеет гораздо больше структуры, чем PHP, что может быть слишком сложным? в конечном итоге PHP может обеспечить самое основное взаимодействие от запроса до ответа:
switch($_GET['page']) {
case "one";
print "page one!";
break;
default:
print "default page";
break;
}
и оттуда вы можете наслоить все виды на передние контроллеры, передавая объекты запроса по цепочке фильтров на контроллер страниц, который перенаправляет на соответствующую модель, которая захватывает данные через ваш уровень абстракции БД, фильтрует их обратно на контроллер, и к представлению, которое создает соответствующий ответ, все время при срабатывании случайных перехватчиков событий. в конечном счете, вам (как разработчику) решать, какой уровень сложности / разделения вы ищете. это и красота, и зло PHP:)