2017 © Pedro Peláez
 

library url-map

URL Map middleware.

image

stack/url-map

URL Map middleware.

  • Friday, May 13, 2016
  • by igorw
  • Repository
  • 8 Watchers
  • 43 Stars
  • 14,799 Installations
  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 14 Forks
  • 5 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

URL Map Stack Middleware

Build Status, (*1)

The UrlMap class takes an array mapping paths to apps and dispatches accordingly. This class is insertable into a Middleware Stack Builder, like stack/builder., (*2)

Install

Install with Composer:, (*3)

$ composer require stack/url-map

Example

Let's say we have a Silex app and want to map a blogging app which implements HttpKernelInterface at the sub path /blog:, (*4)

<?php

use Symfony\Component\HttpFoundation\Request;
use Silex\Application;

$app = new Application();
$app->get('/', function () {
    return "Main Application!";
});

$blog = new Application();
$blog->get('/', function () {
    return "This is the blog!";
});

$map = [
    "/blog" => $blog
];

$app = (new Stack\Builder())
    ->push('Stack\UrlMap', $map)
    ->resolve($app);

$request = Request::createFromGlobals();

$response = $app->handle($request);
$response->send();

$app->terminate($request, $response);

If you now navigate to /blog you should see This is the blog! in your browser., (*5)

The UrlMap overrides SCRIPT_NAME, SCRIPT_FILENAME and PHP_SELF to point at the mapped path. This also makes sure that the path is stripped from the path info., (*6)

This also means that apps which use the Symfony Routing component for Routing and URL Generation don't need any adaptions., (*7)

Apps using other means for routing should prepend the return value of the request's getBaseUrl() method to generated URLs. The URL Map also sets a stack.url_map.prefix request attribute, which can be used if you don't want to rely on the request base URL., (*8)

The Versions