start to implement action matcher
This commit is contained in:
@@ -58,8 +58,11 @@ class TheliaBundle extends Bundle
|
|||||||
$container->register('matcher.default','Thelia\Routing\Matcher\DefaultMatcher')
|
$container->register('matcher.default','Thelia\Routing\Matcher\DefaultMatcher')
|
||||||
->addArgument(new Reference('controller.default'));
|
->addArgument(new Reference('controller.default'));
|
||||||
|
|
||||||
$container->register('matcher','Thelia\Routing\Matcher\TheliaMatcherCollection')
|
$container->register('matcher.action', 'Thelia\Routing\Matcher\ActionMatcher');
|
||||||
|
|
||||||
|
$container->register('matcher','Thelia\Routing\TheliaMatcherCollection')
|
||||||
->addMethodCall('add', array(new Reference('matcher.default'), -255))
|
->addMethodCall('add', array(new Reference('matcher.default'), -255))
|
||||||
|
->addMethodCall('add', array(new Reference('matcher.action'), -200))
|
||||||
//->addMethodCall('add','a matcher class (instance or class name)
|
//->addMethodCall('add','a matcher class (instance or class name)
|
||||||
|
|
||||||
;
|
;
|
||||||
@@ -73,7 +76,7 @@ class TheliaBundle extends Bundle
|
|||||||
* RouterListener implements EventSubscriberInterface and listen for kernel.request event
|
* RouterListener implements EventSubscriberInterface and listen for kernel.request event
|
||||||
*/
|
*/
|
||||||
$container->register('listener.router', 'Symfony\Component\HttpKernel\EventListener\RouterListener')
|
$container->register('listener.router', 'Symfony\Component\HttpKernel\EventListener\RouterListener')
|
||||||
->setArguments(array(new Reference('matcher')))
|
->addArgument(new Reference('matcher'))
|
||||||
;
|
;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
47
core/lib/Thelia/Routing/Matcher/ActionMatcher.php
Normal file
47
core/lib/Thelia/Routing/Matcher/ActionMatcher.php
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
/*************************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Thelia */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) OpenStudio */
|
||||||
|
/* email : info@thelia.net */
|
||||||
|
/* web : http://www.thelia.net */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation; either version 3 of the License */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, */
|
||||||
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||||
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||||
|
/* GNU General Public License for more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License */
|
||||||
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************************/
|
||||||
|
|
||||||
|
namespace Thelia\Routing\Matcher;
|
||||||
|
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
|
||||||
|
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
|
||||||
|
|
||||||
|
class ActionMatcher implements RequestMatcherInterface
|
||||||
|
{
|
||||||
|
public function matchRequest(Request $request)
|
||||||
|
{
|
||||||
|
if (false !== $action = $request->get("action")) {
|
||||||
|
|
||||||
|
//search corresponding action
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new ResourceNotFoundException("No action parameter found");
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function findActionParam(Request $request)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,25 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*************************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* Thelia */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) OpenStudio */
|
||||||
|
/* email : info@thelia.net */
|
||||||
|
/* web : http://www.thelia.net */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation; either version 3 of the License */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, */
|
||||||
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||||
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||||
|
/* GNU General Public License for more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License */
|
||||||
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************************/
|
||||||
namespace Thelia\Routing\Matcher;
|
namespace Thelia\Routing\Matcher;
|
||||||
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
|||||||
@@ -1,6 +1,26 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/*************************************************************************************/
|
||||||
namespace Thelia\Routing\Matcher;
|
/* */
|
||||||
|
/* Thelia */
|
||||||
|
/* */
|
||||||
|
/* Copyright (c) OpenStudio */
|
||||||
|
/* email : info@thelia.net */
|
||||||
|
/* web : http://www.thelia.net */
|
||||||
|
/* */
|
||||||
|
/* This program is free software; you can redistribute it and/or modify */
|
||||||
|
/* it under the terms of the GNU General Public License as published by */
|
||||||
|
/* the Free Software Foundation; either version 3 of the License */
|
||||||
|
/* */
|
||||||
|
/* This program is distributed in the hope that it will be useful, */
|
||||||
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
||||||
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
||||||
|
/* GNU General Public License for more details. */
|
||||||
|
/* */
|
||||||
|
/* You should have received a copy of the GNU General Public License */
|
||||||
|
/* along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************************/
|
||||||
|
namespace Thelia\Routing;
|
||||||
|
|
||||||
use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
|
use Symfony\Component\Routing\Matcher\RequestMatcherInterface;
|
||||||
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
|
use Symfony\Component\Routing\Exception\ResourceNotFoundException;
|
||||||
Reference in New Issue
Block a user