Yii: разница между контролем доступа и фильтрами в контроллере

В чем основное различие между этими двумя компонентами в yii. Их назначение мне кажется одинаковым. Если управление доступом используется для ограничения определенного типа пользователей определенным действием, то фильтры также могут остановить выполнение действия для определенного пользователя, т. е. если пользователь не прошел проверку подлинности.

Мне кажется, что кто-нибудь может четко различить это для меня.


person Ejaz Karim    schedule 25.08.2013    source источник
comment
Контроль доступа направлен на управление, ну, контроль доступа. Он поставляется с подготовленным механизмом для этого. Фильтры более гибкие - они могут запускаться до или после действия, они могут преобразовывать входные данные, они могут измерять и регистрировать затраченное время, они могут отклонять неправильно сформированные запросы... И да, они также могут использоваться для контроля доступа, если вы действительно хотите развернуть для этого свой собственный механизм.   -  person DCoder    schedule 25.08.2013
comment
@DCoder Я понимаю назначение обоих компонентов. Так что это точно так же, как методы beforeSave() и afterSave() CActiveRecord? Мы можем преобразовывать данные после/до выполнения действия get или даже остановить его выполнение.   -  person Ejaz Karim    schedule 25.08.2013
comment
Да, это разумное сравнение.   -  person DCoder    schedule 25.08.2013
comment
На самом деле контроль доступа является фильтром. Тот, который запускается до выполнения действия. Как объяснил DCoder: фильтры можно использовать для самых разных целей, до или после выполнения действия. Контроль доступа — это одна из специализированных реализаций фильтра для решения конкретного варианта использования.   -  person ben    schedule 25.08.2013


Ответы (1)


accessControl целью является авторизация, но filter может проверить запрос, например выполнить действие, если тип запроса POST.

person Moein Hosseini    schedule 25.08.2013