Есть ли в PHP эквивалент Java-фильтров / перехватчиков URL? - PullRequest
2 голосов
/ 28 декабря 2008

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

Есть ли какой-нибудь эквивалент в PHP?

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

Ответы [ 2 ]

5 голосов
/ 28 декабря 2008

В PHP нет эквивалента API сервлета, поэтому быстрый ответ - вам нужно реализовать логику самостоятельно.

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

Очевидно, что довольно быстро настроить какой-то основной файл и проанализировать запрос. В прошлом у нас была практика "один файл .php, чтобы управлять ими всеми" до максимума. Обычно у вас есть один файл, который будет содержать заголовок, нижний колонтитул и основанный на некоторых входящих параметрах GET или POST, вы также включите некоторые другие страницы, которые будут генерировать или отображать содержимое. Вы можете легко понять, как грязные вещи могут получить!

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

Если фреймворки не соответствуют вашим предпочтениям, вам непременно следует прочитать Фреймворк PHP MVC без фреймворка .

2 голосов
/ 28 декабря 2008

Нет, может быть, хотя бы закрытый звонок.

Существует директива config, которая инструктирует php автоматически включать файл в ваш

auto_prepend_file  string   

Это может быть полезно для написания чего-то подобного.

Вы должны просмотреть встроенную библиотеку фильтров начиная с php 5.2 (последняя доступная версия).
http://it.php.net/manual/en/filter.configuration.php. Я еще не использовал это, но это кажется интересным.

Кстати, подсказка о фреймворке является ценной. Хотя они мне не нравятся (часто мне приходится бороться с фреймворком, а не с заданной мною задачей).

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