包 | system.web.filters |
---|---|
继承 | class CInlineFilter » CFilter » CComponent |
实现 | IFilter |
源自 | 1.0 |
版本 | $Id: CInlineFilter.PHP 3026 2011-03-06 10:41:56Z haertl.mike $ |
源码 |
CInlineFilter代表作为控制器的方法定义一个过滤器。
CInlineFilter运行那些在控制器中以’filterXYZ($action)‘这样形式定义, 名字‘XYZ’可以从name属性中读取。
CInlineFilter运行那些在控制器中以’filterXYZ($action)‘这样形式定义, 名字‘XYZ’可以从name属性中读取。
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
name | string | 过滤器名字。‘XYZ’代表着‘filterXYZ’过滤方法。 | CInlineFilter |
公共方法
方法 | 描述 | 定义在 |
---|---|---|
__call() | 如果类中没有调的方法名,则调用这个方法。 | CComponent |
__get() | 返回一个属性值、一个事件处理程序列表或一个行为名称。 | CComponent |
__isset() | 检查一个属性是否为null。 | CComponent |
__set() | 设置一个组件的属性值。 | CComponent |
__unset() | 设置一个组件的属性为null。 | CComponent |
asa() | 返回这个名字的行为对象。 | CComponent |
attachBehavior() | 附加一个行为到组件。 | CComponent |
attachBehaviors() | 附加一个行为列表到组件。 | CComponent |
attachEventHandler() | 为事件附加一个事件处理程序。 | CComponent |
canGetProperty() | 确定属性是否可读。 | CComponent |
canSetProperty() | 确定属性是否可写。 | CComponent |
create() | 创建一个内嵌的过滤器实例。 | CInlineFilter |
detachBehavior() | 从组件中分离一个行为。 | CComponent |
detachBehaviors() | 从组件中分离所有行为。 | CComponent |
detachEventHandler() | 分离一个存在的事件处理程序。 | CComponent |
disableBehavior() | 禁用一个附加行为。 | CComponent |
disableBehaviors() | 禁用组件附加的所有行为。 | CComponent |
enableBehavior() | 启用一个附加行为。 | CComponent |
enableBehaviors() | 启用组件附加的所有行为。 | CComponent |
evaLuateExpression() | 计算一个PHP表达式,或根据组件上下文执行回调。 | CComponent |
filter() | 执行过滤。 | CInlineFilter |
getEventHandlers() | 返回一个事件的附加处理程序列表。 | CComponent |
hasEvent() | 确定一个事件是否定义。 | CComponent |
hasEventHandler() | 检查事件是否有附加的处理程序。 | CComponent |
hasProperty() | 确定属性是否被定义。 | CComponent |
init() | 初始化过滤器。 | CFilter |
raiseEvent() | 发起一个事件。 | CComponent |
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
postFilter() | 执行post操作过滤器。 | CFilter |
preFilter() | 执行预操作过滤器。 | CFilter |
属性详细
name
属性
public string $name;
过滤器名字。‘XYZ’代表着‘filterXYZ’过滤方法。
方法详细
create()
方法
public static CInlineFilter create(CController $controller, string $filterName)
| ||
$controller | CController | 过滤方法的宿主控制器。 |
$filterName | string | 过滤器名字。 |
{return} | CInlineFilter | 实例化的对象。 |
public static function create($controller,$filterName)
{
if(method_exists($controller,'filter'.$filterName))
{
$filter=new CInlineFilter;
$filter->name=$filterName;
return $filter;
}
else
throw new CException(Yii::t('yii','Filter "{filter}" is invalid. Controller "{class}" does not have the filter method "filter{filter}".',
array('{filter}'=>$filterName, '{class}'=>get_class($controller))));
}
创建一个内嵌的过滤器实例。 这个创建是基于过滤器是否会应用内嵌的 方法名字描述和动作名字来定的。
filter()
方法
public void filter(CFilterChain $filterChain)
| ||
$filterChain | CFilterChain | 透过过滤器已启动。 |
public function filter($filterChain)
{
$method='filter'.$this->name;
$filterChain->controller->$method($filterChain);
}
执行过滤。 这个方法调用定义在控制器里面的过滤方法的。