codexsoft/route-collection-filter

Simple Symfony RouteCollection filter

v1.1.0 2020-12-29 19:01 UTC

This package is auto-updated.

Last update: 2024-04-29 05:05:21 UTC


README

This library provides tool to filter RouteCollection by declarative constraints.

Usage

<?php

use CodexSoft\RouteCollectionFilter\RouteCollectionFilter;
use CodexSoft\RouteCollectionFilter\RouteFilter;
use Psr\Log\NullLogger;

$routes = new \Symfony\Component\Routing\RouteCollection();

$filtered = (new RouteCollectionFilter(new NullLogger()))->apply($routes, [
    (new RouteFilter())
        ->setAllowedMethods(['POST'])
        ->setAllowedHosts(['api.localhost',])
        ->setControllerClassInterfacesWhitelist([SomeInterface::class,])
        ->setControllerClassNamespacesWhitelist(['Some\Namespace',])
        ->setAllowedPathPrefixes(['/v1/','/v2/',]),

    (new RouteFilter())
        ->setAllowedMethods(['GET'])
        ->setAllowedHosts(['api.localhost',])
        ->setControllerClassInterfacesWhitelist([OtherInterface::class, ThirdInterface::class])
        ->setControllerClassNamespacesWhitelist(['Other\Namespace',]),
]);

Installation

composer require codexsoft/route-collection-filter