Как создать базовый класс для всех моих контроллеров Symfony

Я хочу создать базовый класс контроллеров для всех моих контроллеров в Symfony, я новичок в Symfony, поэтому не сердитесь на глупые вопросы. Я задаю этот вопрос, потому что я не могу сделать что-то подобное

    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class AbstractController extends Controller
{
public function __construct()
{
//...... check access level
$user = $this->getUser(); //This is not working, I don't have access to the Controller(the base class) properties
}
}

Теперь один из моих контроллеров

    class UserController extends AbstractController
{
public deleteUserAction(Request $request)
{
var_dump($this);// this will dump an empty class that is not instance of Symfony\Bundle\FrameworkBundle\Controller\Controller
//.... delete user
}
}

Каков наилучший способ сделать это? пожалуйста…
РЕДАКТИРОВАТЬ….
Что я действительно хочу сделать, это проверить, достаточно ли уровня привилегий пользователя для доступа к определенному действию (например, deleteUserAction ()) в конкретном контроллере (например, UserController), у меня есть класс, который присоединяет уровень привилегий ко всем действиям во всех контроллерах , Проверка будет очень эффективной, если она происходит в родительском контроллере (например, конструкторе BaseController), который выполняется до UserController->deleteUserAction() но в базовом контроллере у меня нет доступа к $ this.
Я попробовал избирателя, и ACL ни один не помогает моей ситуации.
Заранее спасибо.

6

Решение

Я думаю, что второй — лучший способ создать свой собственный класс и использовать в нем общую функцию.

Если вы хотите добавить некоторые общие функции контроллера, то это не правильный способ добавить его в контроллер Symfony по умолчанию, вместо этого вы можете создать BaseController и расширить ваш контроллер с помощью BaseController и ваш BaseController should extends Controller,

Таким образом, контроллер Symfony по умолчанию остается неизменным.

2

Другие решения

просто используйте сервисный контроллер …

http://symfony.com/doc/current/controller/service.html

0

По вопросам рекламы [email protected]