Versions
Look up a class, method, property or event

CFilter

Package system.web.filters
Inheritance class CFilter » CComponent
Implements IFilter
Subclasses CAccessControlFilter, CHttpCacheFilter, CInlineFilter
Since 1.0
Source Code framework/web/filters/CFilter.php
CFilter is the base class for all filters.

A filter can be applied before and after an action is executed. It can modify the context that the action is to run or decorate the result that the action generates.

Override preFilter() to specify the filtering logic that should be applied before the action, and postFilter() for filtering logic after the action.

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. CComponent
__get() Returns a property value, an event handler list or a behavior based on its name. CComponent
__isset() Checks if a property value is null. CComponent
__set() Sets value of a component property. CComponent
__unset() Sets a component property to be null. CComponent
asa() Returns the named behavior object. CComponent
attachBehavior() Attaches a behavior to this component. CComponent
attachBehaviors() Attaches a list of behaviors to the component. CComponent
attachEventHandler() Attaches an event handler to an event. CComponent
canGetProperty() Determines whether a property can be read. CComponent
canSetProperty() Determines whether a property can be set. CComponent
detachBehavior() Detaches a behavior from the component. CComponent
detachBehaviors() Detaches all behaviors from the component. CComponent
detachEventHandler() Detaches an existing event handler. CComponent
disableBehavior() Disables an attached behavior. CComponent
disableBehaviors() Disables all behaviors attached to this component. CComponent
enableBehavior() Enables an attached behavior. CComponent
enableBehaviors() Enables all behaviors attached to this component. CComponent
evaluateExpression() Evaluates a PHP expression or callback under the context of this component. CComponent
filter() Performs the filtering. CFilter
getEventHandlers() Returns the list of attached event handlers for an event. CComponent
hasEvent() Determines whether an event is defined. CComponent
hasEventHandler() Checks whether the named event has attached handlers. CComponent
hasProperty() Determines whether a property is defined. CComponent
init() Initializes the filter. CFilter
raiseEvent() Raises an event. CComponent

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
postFilter() Performs the post-action filtering. CFilter
preFilter() Performs the pre-action filtering. CFilter

Method Details

filter() method
public void filter(CFilterChain $filterChain)
$filterChain CFilterChain the filter chain that the filter is on.
Source Code: framework/web/filters/CFilter.php#36 (show)
public function filter($filterChain)
{
    if(
$this->preFilter($filterChain))
    {
        
$filterChain->run();
        
$this->postFilter($filterChain);
    }
}

Performs the filtering. The default implementation is to invoke preFilter and postFilter which are meant to be overridden child classes. If a child class needs to override this method, make sure it calls $filterChain->run() if the action should be executed.

init() method (available since v1.1.4)
public void init()
Source Code: framework/web/filters/CFilter.php#52 (show)
public function init()
{
}

Initializes the filter. This method is invoked after the filter properties are initialized and before preFilter is called. You may override this method to include some initialization logic.

postFilter() method
protected void postFilter(CFilterChain $filterChain)
$filterChain CFilterChain the filter chain that the filter is on.
Source Code: framework/web/filters/CFilter.php#71 (show)
protected function postFilter($filterChain)
{
}

Performs the post-action filtering.

preFilter() method
protected boolean preFilter(CFilterChain $filterChain)
$filterChain CFilterChain the filter chain that the filter is on.
{return} boolean whether the filtering process should continue and the action should be executed.
Source Code: framework/web/filters/CFilter.php#62 (show)
protected function preFilter($filterChain)
{
    return 
true;
}

Performs the pre-action filtering.

Total 1 comment

#15866 report it
adsmail27 at 2013/12/24 02:28pm
Example from guide
class PerformanceFilter extends CFilter
{
    protected function preFilter($filterChain)
    {
        // lógica que será executada antes da ação
        return true; // deve retornar false caso a ação não deva ser executada
    }
 
    protected function postFilter($filterChain)
    {
        // lógica que será executada depois da ação
    }
}
class PostController extends CController
{
    ......
    public function filters()
    {
        return array(
            'postOnly + edit, create',
            array(
                'application.filters.PerformanceFilter - edit, create',
                'unit'=>'second',
            ),
        );
    }
}

Leave a comment

Please to leave your comment.