рефакторинг кода в symfony - PullRequest
       5

рефакторинг кода в symfony

1 голос
/ 05 сентября 2011
if (!$this->getUser()->isAuthenticated())
{
  $this->redirect('login/index');
}

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

//module 

class Invite
public function executeIndex {
 sfConfig:get('redirect');
}


class Home
public function executeIndex {
 sfConfig:get('redirect');
}

public function executeShow {
  sfConfig:get('redirect');
}

если не может быть в разных модулях, хотя может быть в одном?

Ответы [ 2 ]

1 голос
/ 05 сентября 2011

Вы можете использовать встроенный фильтр безопасности Symfony.

Если вы хотите защитить весь модуль, создайте файл apps / app / modules / module / config / security.yml со следующим содержимым:

all:
  is_secure: true

Если вы хотите, чтобы действие шоу было безопасным:

show:
  is_secure: true

Обратите внимание, что вам нужно только название действия, не включая результат (например, Успех).

Вы можете многое сделать только с помощью встроенного уровня безопасности, и даже больше с чем-то вроде sf (Doctrine) GuardPlugin.Для получения дополнительной информации см. Нежное введение в Symfony, глава 6, безопасность действий .

1 голос
/ 05 сентября 2011

Вам нужен фильтр. Смотрите здесь

...