Подключение PHP Runtime - PullRequest
       2

Подключение PHP Runtime

0 голосов
/ 22 июня 2011

Есть ли какой-нибудь способ в php.info (или другом файле конфигурации), чтобы я мог указать скрипт, который будет запускаться каждый раз, когда вызывается PHP?

Меня интересует отображение запросов HTTP для конкретной страницы в класс Controller, представляющий эту страницу, аналогично тому, как работает много MVC-фреймворков (например, CI).

Например, пользователь щелкает ссылку, которая должна отображаться в /webroot/some/url/widget.php, но вместо этого вызывается класс /webroot/app/mvc/controllers/WidgetController.php.

Чтобы сделать это, я полагаю, что MVC-фреймворк, подобный CI, нашел способ «зацепить» PHP Runtime, запустив скрипт, который запускается и говорит: «О, запрос для widget.php, но мы действительно хотим запустить объект WidgetController.php. "

Есть идеи / мысли / предложения / проблемы?

Спасибо!

Ответы [ 5 ]

1 голос
/ 22 июня 2011

То, что вы ищете, это php.ini опция auto_prepend_file.

1 голос
/ 22 июня 2011

Я думаю, вы можете ошибиться. Zend Framework и другие известные мне фреймворки используют mod_rewrite или аналогичные методы для перенаправления запросов, которые затем обрабатываются каким-то Front Controller .

Это означает, что ваш запрос к example.org/mypage перенаправляется Apache (не PHP) в myfrontcontroller.php, который затем решает, как обрабатывать входящий запрос.

0 голосов
/ 22 июня 2011

См. http://us3.php.net/manual/en/ini.core.php#ini.auto-prepend-file

Редактировать: Мой ответ просто предназначен для вашего сведения. Как уже упоминали другие, mod_rewrite является общепринятым способом решения проблемы.

0 голосов
/ 22 июня 2011

Достаточно index.php в webroot, путь будет передан как переменная сервера PATH_INFO.

0 голосов
/ 22 июня 2011

Вам нужен роутер и apache mod_rewrite или его эквивалент.Вы настроили mod_rewrite для отправки всех запросов в один файл, такой как /index.php.Затем маршрутизатор просматривает URL-адрес запроса и определяет, какой файл контроллера загрузить и какой метод вызвать.Практически любой MVC-фреймворк имеет эту встроенную функциональность, и все они работают примерно одинаково.

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