Использование одного сценария PHP для всего сайта - PullRequest
0 голосов
/ 02 мая 2010

Сегодня у меня возникла идея (которую, вероятно, уже имели миллионы других) - поместить все сценарии сайтов в один файл вместо нескольких отдельных. При отправке формы также будет скрытое поле, называемое чем-то вроде «action», которое будет представлять, какая функция в файле будет обрабатывать ее.

Я знаю, что существуют такие вещи, как Code Igniter и CakePHP, которые помогают отделить / организовать код.

Это хорошая или плохая идея с точки зрения безопасности, скорости и обслуживания?

Существуют ли такие вещи, о которых я не знаю?

Ответы [ 4 ]

5 голосов
/ 02 мая 2010

Какой смысл? Это просто усложнит обслуживание. Если вам трудно управлять несколькими файлами, вам следует потратить время на поиск лучшего текстового редактора / IDE и прекратить использовать Блокнот или что-то еще, что в первую очередь делает его таким сложным!

4 голосов
/ 02 мая 2010

Многие PHP-фреймворки основаны на дизайне Front Controller : один маленький PHP-скрипт служит отправной точкой для всех запросов. На основе аргументов запроса фронт-контроллер вызывает код в других сценариях PHP.

Но хранить весь код вашего сайта в одном файле нецелесообразно, как прокомментировали другие люди.

1 голос
/ 02 мая 2010

Если вы не кэшируете свои скрипты, все в одном файле означает меньше дискового ввода-вывода, и, как правило, дисковый ввод-вывод является дорогостоящей операцией, это, вероятно, может быть значительным преимуществом.

Дело в том, что к тому времени, когда вы получаете достаточно трафика, чтобы это имело значение, вам, вероятно, все-таки лучше пойти на кеширование. Я предполагаю, что это может иметь некоторый ограниченный смысл, однако, в особых случаях, когда вы застряли в среде общего хостинга, где пропускная способность не является проблемой.

Обслуживание и безопасность: составление программного обеспечения из небольших составных частей кода, которые программист может уместить в своей голове (и компьютер может аккуратно управлять памятью), почти всегда является лучшей идеей, чем огромный старый файл. Хотя, если вы хотите сделать так, чтобы другие разработчики возились с вашим кодом, огромный старый файл мог бы достаточно хорошо служить частью схемы запутывания. ;)

Если по какой-то причине вы использовали однофайловый подход, чтобы попытаться выжать дополнительный дисковый ввод-вывод, то вам нужно создать процесс сборки, в котором вы фактически выполнили свою работу по разработке в серии. разбитых дискретных файлов, и выдал команду make или ant как для создания вашего единственного файла.

1 голос
/ 02 мая 2010

Есть много форумов, которые делают это. Лично мне это не нравится, главным образом потому, что если вы допустили ошибку в файле, весь сайт будет поврежден, пока вы не исправите его.

Мне нравится разделение каждой части, но я думаю, что у нее есть свои плюсы.

Вероятно, это плохо для обслуживания, так как вы не можете легко отключить раздел вашего сайта для обновления.

Скорость: я не уверен, если честно.

Безопасность: вы можете выполнить те же самые настройки безопасности, но просто добавив проверку безопасности в файл, а затем включив этот файл во все свои страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...