Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Отчего разработчики так безаппеляционно утверждают, что один фронт-контроллер отменнее?

Anna | 31.05.2014 | нет комментариев

Итак, цитата из документации. Они утверждают:

A much better solution is to use a front controller: a single PHP file that handles every request coming into your application.

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

There are several problems with this approach, including the inflexibility of the URLs (what if you wanted to change blog.php to news.php without breaking all of your links?) and the fact that each file must manually include some set of core files so that security, database connections and the «look» of the site can remain consistent.

Через пол-страницы они предлагают применять mod_rewrite для украшения урлов:

Using Apache’s mod_rewrite (or equivalent with other web servers), the URLs can easily be cleaned up to be just /, /contact and /blog.

Выходит, предлагается свернуть различные пути в один, а потом вновь, теснее на PHP, их различать и обрабатывать по-различному.

А чай я мог сделать три файла /index.php, /contact/index.php и /blog/index.php и получить то же самое, но по сопоставлению с подходом Symfony я:

    • свалил бы всю маршрутизацию на веб-сервер — мне вообще не придётся делать её на PHP, добавочно она стала бы стремительней
    • не стал бы настраивать рерайтер, тот, что неудобен в настройке, помимо того, тоже скорости не добавляет
    • сумел бы легко без лишних условных конструкций пропускать для отдельных точек входа необязательные шаги, скажем, обзор строки параметров запроса для статических страниц
    • отдельные модули, представленные в данном случае в виде отдельных точек входа, оказались бы связаны слабее, что обозначает, что взаимное воздействие поменьше, проще адаптация, обновление и т. д.

 

      это то, что сообразил навскидку.
      То есть, я использую огромнее давным-давно проверенного и больше простого кода, а получаю в всеобщем то же самое.
      При этом, эластичность не уменьшается. Нет никакой разницы, каким именно методом я настраиваю урлы: в магическом файлике добавляю волшебные строки, либо же создаю директории и в них кладу волшебные файлики. Если мне необходимо сменить урлы так, Дабы ветхие трудились, никто не мешает мне для решения этой ненормальной задачи всё-таки задействовать рерайтер.
      По поводу «идентичной иницизацизации» я тоже не согласен с доводами: в этих ваших цельных контроллерах всё равно доводится применять магию типа «включение библиотек, обзор запроса, итог результата». Чем это отличается от строки «включить стандартную инициализацию» в отдельных точках входа?
      Я думаю, вопрос на самом деле касается не только Symfony — чай все так делают — от Joomla до Dokuwiki. Объясните, чем это один фронт-контроллер настоль отменнее, что применяют его, невзирая на явственные превосходства отдельных точек входа?

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB