brandembassy/php-router

This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.

Package info

github.com/BrandEmbassy/php-router

pkg:composer/brandembassy/php-router

Statistics

Installs: 105 020

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 2

1.2.1 2023-12-06 14:46 UTC

Requires

Suggests

  • nette/di: Allows usage of Router in Nette DI container.
  • slim/slim: Allows usage of slim-router.

Provides

None

Conflicts

None

Replaces

None

MIT 7838dd0c5d27aacc2d671c5de34989e9c209f2eb


README

Router interface for interoperability between Brand Embassy libraries and services.

Install

composer require brandembassy/php-router

Usage

Two interfaces:

  1. RouteDispatcher for dispatching PSR request.
  2. UrlGenerator for generating URLs for links in application.

Bridges

Slim Framework with NetteDI

First in your parameters in .neon config file you need to specify routes. Structure is demonstrated by following example:

parameters:
 app:
 routes:
 backOffice: # namespace, just for organization no semantic meaning
 "/back-office/brand/{brandId}/create-user":
 "get|post": # you can specify multiple HTTP methods
 name: backOfficeCreateUserInBrand # Name is mandatory and is used as identifier
 service: BrandEmbassy/App/BackOffice/User/CreateUserInBrandActoon # This service must be callable (must have __invoke() method)

Then in your services.neon you just register services:

urlGenerator:
 class: BrandEmbassy\Router\UrlGenerator
 factory: BrandEmbassy\Router\Bridge\Slim\SlimRouterNetteDiFactory::create(..., %app.routes%)

routeDispatcher:
 class: BrandEmbassy\Router\RouteDispatcher
 factory: BrandEmbassy\Router\Bridge\Slim\SlimRouterNetteDiFactory::create(..., %app.routes%)