Предполагая следующий наивный код:
$app->get( '(/store(/:url)+)', function( $url = NULL ) use ( $app )
{
// Execute actions on $url
});
Вышеупомянутое отлично работает для следующего:
http://localhost/api/0001/store/url-data
Но это не удается для:
http://localhost/api/0001/store/http%3A%2F%2Fexample.com%2FSomething
http://localhost/api/0001/store/http://example.com/Something
// and other variations
Я хочу передать полный закодированный URI для обработки на стороне сервера. Как я могу сделать это со Слимом?
Примечания:
Другие типы HTTP-запросов (POST, PUT) не будут работать для данной проблемы.
Это можно решить с другой стороны, переформатировав (сериализовав) URI, но я хочу, чтобы это было моим последним средством.
Важное изменение – ответ
Таким образом, вышеизложенное является ошибкой в фреймворке, который в настоящее время тестируется и, надеюсь, исправлен и выпущен в ближайшее время. Я временно решил проблему, сериализовав URI до того, как он достигнет серверной части.