Приехал на этот вопрос ищущего так, поскольку лучший ответ старый, вот более современный один, от этого вопроса
фронт-контроллер (index.php) гарантирует, что все, что обычно для всего сайта (например, для проверки подлинности), всегда корректно обрабатывается независимо от того, какую страницу вы запрашиваете. Если у вас есть 50 разных файлов PHP, разбросанных повсюду, с этим сложно справиться. А что, если вы решите изменить порядок загрузки файлов общей библиотеки? Если у вас есть только один файл, вы можете изменить его в одном месте. Если у вас есть 50 разных точек входа, вам нужно изменить их все.
Кто-то может сказать, что загрузка всех распространенных вещей все время является пустой тратой ресурсов, и вы должны загружать только файлы, необходимые для этой конкретной страницы. Правда. Но сегодняшние фреймворки PHP сильно используют ООП и автозагрузку, поэтому эта «отходы» больше не существуют.
Передний контроллер также упрощает для вас наличие привлекательных URL-адресов на вашем сайте, поскольку вы абсолютно свободны использовать любой URL-адрес, который вам нравится, и отправлять его любому контроллеру/методу, который вам нужен. В противном случае вы застряли с каждым URL-адресом, заканчивающимся на .php, за которым следует уродливый список строк запроса, и единственный способ избежать этого - использовать даже более уродливые правила перезаписи в вашем файле .htaccess. Даже WordPress, который имеет десятки разных точек входа (особенно в разделе администратора), заставляет наиболее распространенные запросы проходить через index.php, чтобы вы могли иметь гибкий формат постоянной ссылки.
Почти все веб-фреймворки на других языках используют отдельные точки входа - или, точнее, вызывается один сценарий для загрузки процесса, который затем связывается с веб-сервером. Джанго работает так. CherryPy работает так. Это очень естественно сделать это в Python. Единственным широко используемым языком, который позволяет писать веб-приложения любым другим способом (кроме случаев, когда он используется как сценарий CGI старого стиля), является PHP. В PHP вы можете предоставить любому файлу расширение .php, и оно будет выполнено веб-сервером. Это очень мощно, и это упрощает изучение PHP. Но как только вы преодолеваете определенный уровень сложности, подход с одной точкой входа начинает выглядеть намного привлекательнее.
Это не рекомендуется. Это предшествовало современной модульной структуре. Почему вы хотите вернуться к чему-то настолько архаичному? – 2010-12-11 19:56:12
@armando Я просто хочу избежать распространения моего проекта во многих каталогах, которые могут вызвать некоторые ошибки в безопасности, говоря, что речь идет о социальной сети – SmootQ
Это. Я даже не ... – shamittomar