Отображение URL в стиле Rails в PHP - PullRequest
0 голосов
/ 20 мая 2011

Существует ли какая-либо стандартная библиотека для сопоставления URL в стиле Rails в PHP?Я не использую какие-либо рамки, весь код написан от руки.В основном, я ищу библиотеку, которая делает это

example.com / user / 1 / active

, это должно сопоставляться с пользователем, с id = 1 и status = 2 (параметры).Я должен быть в состоянии определить карту.

Ответы [ 4 ]

2 голосов
/ 20 мая 2011

Существует около десяти тысяч способов сделать это в PHP.

Недавно я стал поклонником klein.php , легкого кусочка кода маршрутизатора с некоторыми удобными удобными методами. Это не фреймворк, и он не мешает вам использовать его, если хотите.

Это в основном немного больше, чем «вот шаблон URL, и вот функция, запускаемая при совпадении шаблона».

0 голосов
/ 05 апреля 2012

Цель PHP - не обрабатывать URL-адреса с различным форматом.Об этом должна быть заботливая логика приложения.

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

Вот пример 'Hello World':

require_once __DIR__.'/silex.phar'; 

$app = new Silex\Application();

$app->get('/hello/{name}', function($name) use($app) { 
  return 'Hello '.$app->escape($name); 
});

$app->run();

Вы упомянули, что в настоящее время используете PHP 5.2.Silex использует пространства имен, которые доступны в PHP 5.3 и т. Д., Поэтому вам придется обновить PHP, чтобы использовать этот подход.

0 голосов
/ 20 мая 2011

Фреймворки действительно созданы для того, чтобы обрабатывать это автоматически, но если не использовать фреймворк, вам лучше написать свои собственные правила .htaccess (если вы используете Linux или OS X), либо попробовать проверить, как, например, CakePHP обрабатываетпереписывание URL и основа этого.Пример:

http://example.com/name/corey
RewriteRule ^(.+)/(.+)$ /$1.php?name=$2 [NC,L]

Это переписало бы вышеуказанный URL в /name.php?name=corey

0 голосов
/ 20 мая 2011
...