Skip to content
Snippets Groups Projects
Select Git revision
  • 3d8cb20aef2c55cadd38dccc3f51128d7e357ecf
  • main default protected
  • step-3263
  • feature/plugins-cli
  • feature/vite
  • step-2484-peerreview
  • biest/issue-5051
  • tests/simplify-jsonapi-tests
  • fix/typo-in-1a70031
  • feature/broadcasting
  • database-seeders-and-factories
  • feature/peer-review-2
  • feature-feedback-jsonapi
  • feature/peerreview
  • feature/balloon-plus
  • feature/stock-images-unsplash
  • tic-2588
  • 5.0
  • 5.2
  • biest/unlock-blocks
  • biest-1514
21 results

PublicLinksUpdate.php

Blame
  • Forked from Stud.IP / Stud.IP
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    RouteMap.php 28.56 KiB
    <?php
    
    namespace JsonApi;
    
    use JsonApi\Contracts\JsonApiPlugin;
    use JsonApi\Middlewares\Authentication;
    use JsonApi\Middlewares\DangerousRouteHandler;
    use JsonApi\Middlewares\JsonApi as JsonApiMiddleware;
    use JsonApi\Middlewares\StudipMockNavigation;
    use Slim\Routing\RouteCollectorProxy;
    
    /**
     * Diese Klasse ist die JSON-API-Routemap, in der alle Routen
     * registriert werden und die Middleware hinzugefügt wird, die
     * JSON-API spezifische Fehlerbehandlung usw. übernimmt.
     *
     * Routen der Kernklassen sind hier explizit vermerkt.
     *
     * Routen aus Plugins werden über die PluginEngine abgefragt. Plugins
     * können genau dann eigene Routen registrieren, wenn sie das
     * Interface \JsonApi\Contracts\JsonApiPlugin implementieren.
     *
     * Routen können entweder mit Autorisierung oder auch ohne eingetragen
     * werden. Autorisierte Kernrouten werden in
     * RouteMap::authenticatedRoutes vermerkt. Kernrouten ohne
     * notwendige Autorisierung werden in
     * RouteMap::unauthenticatedRoutes registriert. Routen aus Plugins
     * werden jeweils in den Methoden
     * \JsonApi\Contracts\JsonApiPlugin::registerAuthenticatedRoutes und
     * \JsonApi\Contracts\JsonApiPlugin::registerUnauthenticatedRoutes
     * eingetragen.
     *
     * Zu authentifizierende Routen werden in \JsonApi\Middlewares\Authentication
     * authentifiziert.
     *
     * Wie Routen registriert werden, kann man im `User Guide` des
     * Slim-Frameworks nachlesen
     * (http://www.slimframework.com/docs/objects/router.html#how-to-create-routes)
     *
     * Route-Handler können als Funktionen, in der Slim-Syntax
     * "Klassenname:Methodenname" oder auch mit dem Klassennamen einer
     * Klasse, die __invoke implementiert, angegeben werden. Die
     * __invoke-Variante wird hier sehr empfohlen.
     *
     * Beispiel:
     *
     *   use Studip\MeineRoute;
     *
     *   $this->app->post('/article/{id}/comments', MeineRoute::class);
     *
     * @see \JsonApi\Middlewares\JsonApi
     * @see \JsonApi\Middlewares\Authentication
     * @see \JsonApi\Contracts\JsonApiPlugin
     * @see http://www.slimframework.com/docs/objects/router.html#how-to-create-routes
     *
     * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
     */
    class RouteMap
    {
        /** @var \Slim\App */
        private $app;
    
        /**
         * Der Konstruktor.
         *
         * @param \Slim\App $app die Slim-Applikation, in der die Routen
         *                       definiert werden sollen
         */
        public function __construct(\Slim\App $app)
        {