Plugins 扩展插件中的symfony任务
我正在使用symfony 1.4中的一个插件,希望为另一个插件中的任务添加一个侦听器。当用户执行Plugins 扩展插件中的symfony任务,plugins,symfony1,listener,task,Plugins,Symfony1,Listener,Task,我正在使用symfony 1.4中的一个插件,希望为另一个插件中的任务添加一个侦听器。当用户执行php symfony原则:build时,我希望我的插件运行自己的任务。在哪里/如何注册侦听器?我在这方面没有取得任何成功 谢谢大家! 我认为没有合适的事件(比如缓存清除事件) 我的建议是要么接受它需要两个任务,要么如果您经常使用build,那么创建一个包装器任务,先调用一个,然后调用另一个——原则:build是一个很好的例子。或者一个bash/批处理脚本 实际上,您可以将代码挂接到任何symfony
php symfony原则:build
时,我希望我的插件运行自己的任务。在哪里/如何注册侦听器?我在这方面没有取得任何成功
谢谢大家! 我认为没有合适的事件(比如缓存清除事件)
我的建议是要么接受它需要两个任务,要么如果您经常使用build,那么创建一个包装器任务,先调用一个,然后调用另一个——原则:build是一个很好的例子。或者一个bash/批处理脚本 实际上,您可以将代码挂接到任何symfony任务。看看sfBaseTask::doRun方法。任何任务在执行时都会发出两个事件:command.pre_command和command.post_command 创建一个类来存储代码,例如:
class toolkitEvents
{
static public function commandPostEventHook(sfEvent $event)
{
$task = $event->getSubject();
if ($task->getFullName() === 'doctrine:build')
{
//do stuff or call another task
}
}
并在初始化插件时将此方法连接到调度程序:
class yourPluginConfiguration extends sfPluginConfiguration
{
public function initialize()
{
$this->dispatcher->connect('command.post_command', array('toolkitEvents', 'commandPostEventHook'));
}
“创建一个包装器任务,先调用一个,然后调用另一个”——我认为这就是解决方案。非常感谢。