create an abstract class for base action method

This commit is contained in:
Manuel Raynaud
2013-08-07 10:42:19 +02:00
parent 154d8e4d48
commit 69f80d29f5
3 changed files with 42 additions and 6 deletions

View File

@@ -0,0 +1,38 @@
<?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\Action;
use Symfony\Component\HttpFoundation\RedirectResponse;
abstract class BaseAction
{
public function redirect($url, $status = 302)
{
$response = new RedirectResponse($url, $status);
$response->send();
exit;
}
}

View File

@@ -39,7 +39,6 @@ use Thelia\Model\CartQuery;
use Thelia\Model\Cart as CartModel;
use Thelia\Model\ConfigQuery;
use Thelia\Model\Customer;
use Thelia\Tools\Redirect;
/**
*
@@ -48,7 +47,7 @@ use Thelia\Tools\Redirect;
* Class Cart
* @package Thelia\Action
*/
class Cart implements EventSubscriberInterface
class Cart extends BaseAction implements EventSubscriberInterface
{
/**
* @var \Symfony\Component\EventDispatcher\EventDispatcherInterface
@@ -103,7 +102,7 @@ class Cart implements EventSubscriberInterface
->save();
;
Redirect::exec($cartAdd->getSuccessUrl($request->getUriAddingParameters(array("addCart" => 1))));
$this->redirect($cartAdd->getSuccessUrl($request->getUriAddingParameters(array("addCart" => 1))));
} catch (PropelException $e) {
\Thelia\Log\Tlog::getInstance()->error(sptinf("error on adding item to cart with message : %s", $e->getMessage()));
$message = "Impossible to add this article to your cart, please try again";

View File

@@ -37,14 +37,13 @@ use Thelia\Form\CustomerLogin;
use Thelia\Core\Security\Authentication\CustomerUsernamePasswordFormAuthenticator;
use Thelia\Core\Security\SecurityContext;
use Thelia\Model\ConfigQuery;
use Thelia\Tools\Redirect;
use Symfony\Component\Validator\Exception\ValidatorException;
use Thelia\Core\Security\Exception\AuthenticationException;
use Thelia\Core\Security\Exception\UsernameNotFoundException;
use Propel\Runtime\Exception\PropelException;
class Customer implements EventSubscriberInterface
class Customer extends BaseAction implements EventSubscriberInterface
{
/**
* @var Thelia\Core\Security\SecurityContext
@@ -291,7 +290,7 @@ class Customer implements EventSubscriberInterface
if ($sendLoginEvent) $event->getDispatcher()->dispatch(TheliaEvents::CUSTOMER_LOGIN, $event);
// Redirect to the success URL
Redirect::exec($form->getSuccessUrl());
$this->redirect($form->getSuccessUrl());
}
/**