1<?php
2
3/*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Symfony\Component\Routing\Matcher;
13
14use Symfony\Component\HttpFoundation\Request;
15use Symfony\Component\Routing\Exception\MethodNotAllowedException;
16use Symfony\Component\Routing\Exception\NoConfigurationException;
17use Symfony\Component\Routing\Exception\ResourceNotFoundException;
18
19/**
20 * RequestMatcherInterface is the interface that all request matcher classes must implement.
21 *
22 * @author Fabien Potencier <fabien@symfony.com>
23 */
24interface RequestMatcherInterface
25{
26    /**
27     * Tries to match a request with a set of routes.
28     *
29     * If the matcher can not find information, it must throw one of the exceptions documented
30     * below.
31     *
32     * @return array An array of parameters
33     *
34     * @throws NoConfigurationException  If no routing configuration could be found
35     * @throws ResourceNotFoundException If no matching resource could be found
36     * @throws MethodNotAllowedException If a matching resource was found but the request method is not allowed
37     */
38    public function matchRequest(Request $request);
39}
40