mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-26 14:26:54 +08:00
finished ActionFilter.
This commit is contained in:
@ -30,8 +30,8 @@ class ActionFilter extends Behavior
|
|||||||
public function events()
|
public function events()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
'beforeAction' => 'beforeAction',
|
'beforeAction' => 'beforeFilter',
|
||||||
'afterAction' => 'afterAction',
|
'afterAction' => 'afterFilter',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,8 +39,11 @@ class ActionFilter extends Behavior
|
|||||||
* @param ActionEvent $event
|
* @param ActionEvent $event
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function beforeAction($event)
|
public function beforeFilter($event)
|
||||||
{
|
{
|
||||||
|
if ($this->isActive($event->action)) {
|
||||||
|
$event->isValid = $this->beforeAction($event->action);
|
||||||
|
}
|
||||||
return $event->isValid;
|
return $event->isValid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -48,8 +51,40 @@ class ActionFilter extends Behavior
|
|||||||
* @param ActionEvent $event
|
* @param ActionEvent $event
|
||||||
* @return boolean
|
* @return boolean
|
||||||
*/
|
*/
|
||||||
public function afterAction($event)
|
public function afterFilter($event)
|
||||||
{
|
{
|
||||||
|
if ($this->isActive($event->action)) {
|
||||||
|
$this->afterAction($event->action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is invoked right before an action is to be executed (after all possible filters.)
|
||||||
|
* You may override this method to do last-minute preparation for the action.
|
||||||
|
* @param Action $action the action to be executed.
|
||||||
|
* @return boolean whether the action should continue to be executed.
|
||||||
|
*/
|
||||||
|
public function beforeAction($action)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is invoked right after an action is executed.
|
||||||
|
* You may override this method to do some postprocessing for the action.
|
||||||
|
* @param Action $action the action just executed.
|
||||||
|
*/
|
||||||
|
public function afterAction($action)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a value indicating whether the filer is active for the given action.
|
||||||
|
* @param Action $action the action being filtered
|
||||||
|
* @return boolean whether the filer is active for the given action.
|
||||||
|
*/
|
||||||
|
protected function isActive($action)
|
||||||
|
{
|
||||||
|
return !in_array($action->id, $this->except, true) && (empty($this->only) || in_array($action->id, $this->only, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
17
todo.md
17
todo.md
@ -1,21 +1,4 @@
|
|||||||
- console
|
|
||||||
* If console is executed using Windows, do not use colors. If not, use colors. Allow to override via console application settings.
|
|
||||||
- db
|
|
||||||
* pgsql, sql server, oracle, db2 drivers
|
|
||||||
* unit tests on different DB drivers
|
|
||||||
* document-based (should allow storage-specific methods additionally to generic ones)
|
|
||||||
* mongodb (put it under framework/db/mongodb)
|
|
||||||
* key-value-based (should allow storage-specific methods additionally to generic ones)
|
|
||||||
* redis (put it under framework/db/redis or perhaps framework/caching?)
|
|
||||||
- base
|
|
||||||
* TwigViewRenderer (Alex)
|
|
||||||
* SmartyViewRenderer (Alex)
|
|
||||||
- logging
|
|
||||||
* WebTarget (TBD after web is in place): should consider using javascript and make it into a toolbar
|
|
||||||
* ProfileTarget (TBD after web is in place): should consider using javascript and make it into a toolbar
|
|
||||||
* unit tests
|
|
||||||
- caching
|
- caching
|
||||||
* backend-specific unit tests
|
|
||||||
* dependency unit tests
|
* dependency unit tests
|
||||||
- validators
|
- validators
|
||||||
* Refactor validators to add validateValue() for every validator, if possible. Check if value is an array.
|
* Refactor validators to add validateValue() for every validator, if possible. Check if value is an array.
|
||||||
|
Reference in New Issue
Block a user