PHP code example of germania-kg / routenameurlcallable
1. Go to this page and download the library: Download germania-kg/routenameurlcallable library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
germania-kg / routenameurlcallable example snippets
$app->get("/hello/{name}", function($request, $response, $args) {
$response->getBody()->write("Hello " . $args['name'] );
return $response;
})->setName("Hello");
$app->post("/users", function($request, $response, $args) {
// Create new user and grab name
$user = "john";
$route = "Hello";
// The Slim way
$uri = $request->getUri();
$context = \Slim\Routing\RouteContext::fromRequest($request);
$parser = $context->getRouteParser();
$location = $parser->fullUrlFor($uri, $route, ['name' => $user]);
# http://test.com/hello/john
return $response->withHeader('Location', $location)->withStatus(302);
});
$app->post("/users", function($request, $response, $args) {
// Create new user and grab name
$user = "john";
$route = "Hello";
$uri_factory = new RouteNameUrlCallable($request);
$location = $uri_factory($route, ['name' => $user]);
# http://test.com/hello/john
return $response->withHeader('Location', $location)->withStatus(302);
});
$rnc = new RouteNameUrlCallable($request);
use Slim\Routing\RouteContext;
$request = ...;
$route_parser = RouteContext::fromRequest($request)->getRouteParser();
$rnc = new RouteNameUrlCallable($route_parser);
$rnc = RouteNameUrlCallable::fromRequest($request);
use Germania\RouteNameUrlCallable\RouteNameUrlCallable;
use Slim\Factory\AppFactory;
// Setup Slim 4 App
$app = AppFactory::create();
$app->addRoutingMiddleware();
// Our named route:
$app->get("/hello/{name}", function($request, $response, $args) {
$response->getBody()->write("Hello " . $args['name'] );
return $response;
})->setName("Hello");
// ...and a route we use the callable within:
$app->post("/users", function($request, $response, $args) {
// Create new user and grab name
$user = "john";
$route = "Hello";
$uri_factory = new RouteNameUrlCallable::fromRequest($request);
$location = $uri_factory($route, ['name' => $user]);
echo get_class($location);
# \Slim\Http\Uri
echo $login_url->__toString();
# http://test.com/hello/john
return $response->withHeader('Location', $location)->withStatus(302);
});
$url_data = array(
'name' => "Hello",
'args' => ['name' => 'John'],
'params' => ['foo' => 'bar']
);
echo $uri_factory( $url_data );
http://test.com/hello/john?foo=bar
echo $uri_factory( $url_data, [], ['view' => 'table'] );
http://test.com/hello/john?foo=bar&view=table
echo $uri_factory( $url_data, [], ['foo' => 'baz', 'view' => 'table'] );
http://test.com/hello/john?foo=baz&view=table
$app->get("/", function($request, $response, $args) {
$uri_factory = new RouteNameUrlCallable($request);
$twig = new \Twig\Environment( ... );
$twig->addFunction(new \Twig\TwigFunction('route_url', $uri_factory));
$html = $twig->render("hello-user.html", [
"user" => "john"
]);
$response->getBody()->write( $html );
return $response;
});