事件
symfob娱乐下载ony核心组件的解耦得益于sfEventDispatcher
对象。事件分派器管理核心组件之间的通信。
任何对象都可以向调度程序通知事件,任何其他对象都可以连接到调度程序以侦听特定的事件。
事件只是一个名称,由一个名称空间和一个由点(.
).
使用
你可以先创建一个事件对象来通知一个事件:
美元的事件=新sfEvent(这个美元,“user.change_culture”,数组(“文化”= >美元的文化));
并通知它:
调度程序- >通知(事件);
的sfEvent
构造函数接受三个参数:
- 事件的“主题”(大多数情况下,这是通知事件的对象,但也可以是
零
) - 事件名称
- 要传递给侦听器的参数数组
要监听一个事件,连接到该事件名称:
美元的调度员->连接(“user.change_culture”,数组(这个美元,“listenToChangeCultureEvent”));
的连接
方法接受两个参数:
- 事件名称
- 当事件被通知时可调用的PHP
下面是一个监听器的实现示例:
公共函数listenToChangeCultureEvent(sfEvent美元的事件){//使用新的区域性更改消息格式对象这个美元->setCulture(美元的事件[“文化”]);}
监听器将事件作为第一个参数获取。事件对象有几个方法来获取事件信息:
getSubject ()
:获取附加到事件的主题对象getparameter ()
:返回事件参数
还可以将事件对象作为数组访问以获取其参数。
事件类型
事件可以通过三种不同的方法触发:
notify ()
notifyUntil ()
filter ()
通知
的notify ()
方法通知所有侦听器。侦听器不能返回值,并且保证所有侦听器都将被执行。
notifyUntil
的notifyUntil ()
方法通知所有侦听器,直到其中一个侦听器通过返回真正的
价值。
停止链的侦听器也可以调用setReturnValue ()
方法。
方法来检查监听器是否处理了事件isProcessed ()
方法:
如果(美元的事件->isProcessed()){/ /……}
过滤器
的filter ()
方法通知所有侦听器,它们可以过滤给定的值,该值由通知器作为第二个参数传递,并由可调用的侦听器作为第二个参数检索。所有监听器都被传递这个值,它们必须返回过滤后的值。保证执行所有侦听器。
方法来获取过滤后的值getReturnValue ()
方法:
美元受潮湿腐烂=美元的事件->getReturnValue();
事件
应用程序
application.log
通知的方法:通知
默认的通知:很多类
参数 | 描述 |
---|---|
优先级 |
优先级(sfLogger:紧急情况 ,sfLogger:警报 ,sfLogger:暴击 ,sfLogger:犯错 ,sfLogger:警告 ,sfLogger:通知 ,sfLogger:信息 ,或sfLogger:调试 ) |
的application.log
事件是symfony用来对web请求进行日志记录的机制(参见日ob娱乐下载志记录器工厂)。大多数symfony核心组件都会通知该事件。ob娱乐下载
application.throw_exception
通知的方法:notifyUntil
默认的通知:sfException
的application.throw_exception
事件将在处理请求期间抛出未捕获的异常时通知。
每当抛出未捕获的异常时,您可以侦听此事件以执行一些特殊操作(如发送电子邮件或记录错误)。您还可以通过处理事件来覆盖symfony的默认异常管理机制。ob娱乐下载
命令
command.log
通知的方法:通知
默认的通知:sfCommand *
类
参数 | 描述 |
---|---|
优先级 |
优先级(sfLogger:紧急情况 ,sfLogger:警报 ,sfLogger:暴击 ,sfLogger:犯错 ,sfLogger:警告 ,sfLogger:通知 ,sfLogger:信息 ,或sfLogger:调试 ) |
的command.log
事件是symfony用于为symfony CLI实用程序执行日ob娱乐下载志记录的机制(请参阅日志记录器工厂)。
command.pre_command
通知的方法:notifyUntil
默认的通知:sfTask
参数 | 描述 |
---|---|
参数 |
在CLI中传递的参数数组 |
选项 |
在CLI中传递的选项数组 |
的command.pre_command
事件在任务执行之前被通知。
command.post_command
通知的方法:通知
默认的通知:sfTask
的command.post_command
事件会在任务执行后通知。
command.filter_options
通知的方法:过滤器
默认的通知:sfTask
参数 | 描述 |
---|---|
command_manager |
的sfCommandManager 实例 |
的command.filter_options
事件在任务CLI选项解析之前被通知。此事件可用于筛选用户传递的选项。
配置
configuration.method_not_found
通知的方法:notifyUntil
默认的通知:sfProjectConfiguration
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的configuration.method_not_found
方法中未定义方法时,将通知sfProjectConfiguration
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
组件
component.method_not_found
通知的方法:notifyUntil
默认的通知:sfComponent
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的component.method_not_found
方法中未定义方法时,将通知sfComponent
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
上下文
context.load_factories
通知的方法:通知
默认的通知:sfContext
的context.load_factories
对象对每个请求通知一次sfContext
在所有工厂初始化之后。这是所有核心类初始化后通知的第一个事件。
context.method_not_found
通知的方法:notifyUntil
默认的通知:sfContext
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的context.method_not_found
方法中未定义方法时,将通知sfContext
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
控制器
controller.change_action
通知的方法:通知
默认的通知:sfController
参数 | 描述 |
---|---|
模块 |
要执行的模块名 |
行动 |
要执行的动作名称 |
的controller.change_action
仅在执行操作之前通知。
controller.method_not_found
通知的方法:notifyUntil
默认的通知:sfController
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的controller.method_not_found
方法中未定义方法时,将通知sfController
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
controller.page_not_found
通知的方法:通知
默认的通知:sfController
参数 | 描述 |
---|---|
模块 |
产生404错误的模块名 |
行动 |
生成404错误的操作名 |
的controller.page_not_found
每当在处理请求期间生成404错误时,都会通知。
每当出现404页面时,您可以监听此事件以执行一些特殊操作,例如发送电子邮件或记录错误。该事件。
调试
debug.web.load_panels
通知的方法:通知
默认的通知:sfWebDebug
的debug.web.load_panels
对象调用后,会通知配置
方法sfWebDebug
实例。您可以使用此事件来管理自己的面板。
debug.web.view.filter_parameter_html
通知的方法:过滤器
默认的通知:sfWebDebugPanelView
参数 | 描述 |
---|---|
参数 |
要筛选的参数 |
的debug.web.view.filter_parameter_html
类呈现的每个参数进行筛选sfWebDebugPanelView
面板。
学说
doctrine.configure
通知的方法:通知
默认的通知:sfDoctrinePluginConfiguration
的doctrine.configure
事件将在Doctrine插件配置后通知。
doctrine.filter_model_builder_options
通知的方法:过滤器
默认的通知:sfDoctrinePluginConfiguration
的doctrine.filter_model_builder_options
事件过滤Doctrine模式构建器的选项。
doctrine.filter_cli_config
通知的方法:过滤器
默认的通知:sfDoctrinePluginConfiguration
的doctrine.filter_cli_config
event过滤Doctrine CLI的配置数组。
doctrine.configure_connection
通知的方法:通知
默认的通知:Doctrine_Manager
通过sfDoctrineDatabase
参数 | 描述 |
---|---|
连接 |
的Doctrine_Connection 实例 |
数据库 |
的sfDoctrineDatabase 实例 |
的doctrine.configure_connection
事件将在Doctrine数据库第一次初始化时通知。
doctrine.admin.delete_object
通知的方法:通知
默认的通知:管理生成器模块类
参数 | 描述 |
---|---|
对象 |
本教义反对删除 |
的doctrine.admin.delete_object
事件将在管理生成器模块中删除Doctrine对象时通知。
doctrine.admin.save_object
通知的方法:通知
默认的通知:管理生成器模块类
参数 | 描述 |
---|---|
对象 |
本教义反对删除 |
的doctrine.admin.save_object
当Doctrine对象保存在管理生成器模块中时,将通知事件。
doctrine.admin.build_query
通知的方法:过滤器
默认的通知:管理生成器模块类
的doctrine.admin.build_query
事件将在管理生成器模块中创建Doctrine Query时通知。
doctrine.admin.pre_execute
通知的方法:通知
默认的通知:管理生成器模块类
参数 | 描述 |
---|---|
配置 |
管理生成器配置对象 |
的doctrine.admin.pre_execute
事件中通知preExecute ()
管理生成器模块的方法。
形式
form.post_configure
通知的方法:通知
默认的通知:sfFormob娱乐下载Symfony
的form.post_configure
事件在配置每个表单后通知。
form.filter_values
通知的方法:过滤器
默认的通知:sfFormob娱乐下载Symfony
的form.filter_values
事件在绑定之前过滤合并的、受污染的参数和文件数组。
form.validation_error
通知的方法:通知
默认的通知:sfFormob娱乐下载Symfony
参数 | 描述 |
---|---|
错误 |
错误实例 |
的form.validation_error
每当表单验证失败时,都会通知。
form.method_not_found
通知的方法:notifyUntil
默认的通知:sfFormob娱乐下载Symfony
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的form.method_not_found
方法中未定义方法时,将通知sfFormob娱乐下载Symfony
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
梅勒
mailer.configure
通知的方法:通知
默认的通知:sfMailer
的mailer.configure
事件将在配置邮件实例后通知。邮件实例是事件的主题。
插件
plugin.pre_install
通知的方法:通知
默认的通知:sfPluginManager
参数 | 描述 |
---|---|
通道 |
插件通道 |
插件 |
插件名 |
is_package |
要安装的插件是否为本地包(真正的 ),或网页包(假 ) |
的plugin.pre_install
事件在插件安装之前被通知。
plugin.post_install
通知的方法:通知
默认的通知:sfPluginManager
参数 | 描述 |
---|---|
通道 |
插件通道 |
插件 |
插件名 |
的plugin.post_install
事件会在插件安装后被通知。
plugin.pre_uninstall
通知的方法:通知
默认的通知:sfPluginManager
参数 | 描述 |
---|---|
通道 |
插件通道 |
插件 |
插件名 |
的plugin.pre_uninstall
事件在插件卸载之前被通知。
plugin.post_uninstall
通知的方法:通知
默认的通知:sfPluginManager
参数 | 描述 |
---|---|
通道 |
插件通道 |
插件 |
插件名 |
的plugin.post_uninstall
事件会在插件卸载后被通知。
推动
propel.configure
通知的方法:通知
默认的通知:sfPropelPluginConfiguration
的propel.configure
事件被通知后,驱动插件已配置。
propel.filter_phing_args
通知的方法:过滤器
默认的通知:sfPropelBaseTask
的propel.filter_phing_args
event为Propel CLI过滤配置数组。
propel.filter_connection_config
通知的方法:过滤器
默认的通知:sfPropelDatabase
参数 | 描述 |
---|---|
的名字 |
连接的名称 |
数据库 |
的sfPropelDatabase 实例 |
的propel.filter_connection_config
当一个Propel数据库第一次初始化时,该事件被通知。
propel.admin.delete_object
通知的方法:通知
默认的通知:管理生成器模块类
参数 | 描述 |
---|---|
对象 |
要删除的Propel对象 |
的propel.admin.delete_object
当一个Propel对象在管理生成器模块中被删除时,会被通知。
propel.admin.save_object
通知的方法:通知
默认的通知:管理生成器模块类
参数 | 描述 |
---|---|
对象 |
要删除的Propel对象 |
的propel.admin.save_object
当一个Propel对象被保存在管理生成器模块中时,事件会被通知。
propel.admin.build_criteria
通知的方法:过滤器
默认的通知:管理生成器模块类
的propel.admin.build_criteria
当管理生成器模块中创建了一个驱动条件时,事件会被通知。
propel.admin.pre_execute
通知的方法:通知
默认的通知:管理生成器模块类
参数 | 描述 |
---|---|
配置 |
管理生成器配置对象 |
的propel.admin.pre_execute
事件中通知preExecute ()
管理生成器模块的方法。
请求
request.filter_parameters
通知的方法:过滤器
默认的通知:sfWebRequest
参数 | 描述 |
---|---|
path_info |
请求路径 |
的request.filter_parameters
事件将在初始化请求参数时通知。
request.method_not_found
通知的方法:notifyUntil
默认的通知:sfRequest
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的request.method_not_found
方法中未定义方法时,将通知sfRequest
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
响应
response.method_not_found
通知的方法:notifyUntil
默认的通知:sfResponse
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的response.method_not_found
方法中未定义方法时,将通知sfResponse
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
response.filter_content
通知的方法:过滤器
默认的通知:sfResponse
的response.filter_content
事件在发送响应之前被通知。通过侦听此事件,您可以在发送响应之前操作响应的内容。
路由
routing.load_configuration
通知的方法:通知
默认的通知:sfRouting
的routing.load_configuration
事件将在路由工厂加载路由配置时通知。
任务
task.cache.clear
通知的方法:notifyUntil
默认的通知:sfCacheClearTask
参数 | 描述 |
---|---|
应用程序 |
应用程序名称 |
类型 |
缓存类型(所有 ,配置 ,i18n ,路由 ,模块 ,模板 ) |
env |
环境 |
的task.cache.clear
事件将在用户从命令行中使用缓存:清晰
的任务。
模板
template.filter_parameters
通知的方法:过滤器
默认的通知:sfViewParameterHolder
的template.filter_parameters
事件在呈现视图文件之前通知。通过监听该事件,您可以访问和操作传递给模板的变量。
用户
user.change_culture
通知的方法:通知
默认的通知:sfUser
参数 | 描述 |
---|---|
文化 |
用户文化 |
的user.change_culture
事件将在请求期间更改用户区域性时通知。
user.method_not_found
通知的方法:notifyUntil
默认的通知:sfUser
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的user.method_not_found
方法中未定义方法时,将通知sfUser
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
user.change_authentication
通知的方法:通知
默认的通知:sfBasicSecurityUser
参数 | 描述 |
---|---|
通过身份验证 |
用户是否通过认证 |
的user.change_authentication
每当用户身份验证状态发生变化时,都会通知。
视图
view.configure_format
通知的方法:通知
默认的通知:sfView
参数 | 描述 |
---|---|
格式 |
请求的格式 |
响应 |
响应对象 |
请求 |
请求对象 |
的view.configure_format
属性时,视图将通知sf_format
参数设置。在symfony完成一些简单的操作(如更改设置或取消设置ob娱乐下载布局)后,该事件会被通知。此事件允许根据请求的格式更改视图和响应对象。
view.method_not_found
通知的方法:notifyUntil
默认的通知:sfView
参数 | 描述 |
---|---|
方法 |
被调用的缺失方法的名称 |
参数 |
传递给方法的参数 |
的view.method_not_found
方法中未定义方法时,将通知sfView
类。通过侦听此事件,可以将方法添加到类中,而不使用继承。
view.cache
view.cache.filter_content
通知的方法:过滤器
默认的通知:sfViewCacheManager
参数 | 描述 |
---|---|
响应 |
响应对象 |
uri |
缓存内容的URI |
新 |
内容是否在缓存中是新的 |
的view.cache.filter_content
每当从缓存中检索内容时,都会通知。
本作品在创作共用署名相似共享3.0未移植许可许可下获得许可。