`
zccst
  • 浏览: 3299777 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

yii中使用event dispatcher

 
阅读更多
yii中使用event dispatcher

一、安装与配置
1,原理与安装
event dispatcher主要是用来解耦,否则不要使用,因为相对而言,算是重量级的应用。

参考官方网址:
http://components.symfony-project.org/event-dispatcher/


2,在yii中的配置
在Yii的配置文件../config/main.php中引用
	//预加载,即在load前载入该组件
	'preload'=>array('log', 'exception_watcher', 'os_handler', 'fp_handler'),

	//注册组件
	'components'=>array(
		......
		//注册event dispatcher
		'dispatcher' => array(
			'class' => 'application.extensions.event_dispatcher.EventDispatcher'
		),
		'fp_handler' => array(
			'class' => 'application.components.FailPartsHandler',
		),
		......
	),


3,注册组件时引入的EventDispatcher.php
require_once dirname(__FILE__) . '/event-dispatcher/lib/sfEventDispatcher.php';

/**
 * It's a simple wrapper for sfEventDispatcher
 *
 */
class EventDispatcher  extends sfEventDispatcher {
	public function init() {
	
	}
}


二、使用
1,在函数中使用
$event = new sfEvent($this, 'failParts.create', array('Oid'=>$params['Oid']));
$str = Yii::app()->dispatcher->notify($event);
return $str->getReturnValue();


2,在component/XXHandler.php文件中调用
class FailPartsHandler {
     public function init() {
		$dispatcher = Yii::app()->dispatcher;

		$handlers = array(
			'failParts.create' 		  => 'onCreate',
			'failParts.partsMans' 	  => 'onPartsMans',
			'failParts.workers'		  => 'onGetWorkers',
			'failParts.floors'		  => 'onGetFloorsByIdcName',
			'failParts.sendApprove'	  => 'onSendApprove',
			'failParts.rmsPreShow'	  => 'onRMSPreShow',
			'failParts.outConfirm'	  => 'onOutConfirm',
		);

		// event名称  回调函数
		foreach($handlers as $event_name => $handle_method) {
			$dispatcher->connect($event_name, array($this, $handle_method));
		}
	}
    public function onCreate($event) {
		// 1,通过$event传回参数
		$outsource = $event->getSubject();
		$Oid = $event['Oid'];
		
		// 2,调用XX soap接口(非模拟)
		$result = $this->getRMSClient()->getServerInfoByOid(RMSClient::buildHeader(),$Oid);
		
		// 3,将从XX获取的数据返回调用函数
		$event->setReturnValue($result);
		return true;
	}
        ......

}
分享到:
评论

相关推荐

    Yii中使用PHPExcel

    Yii中使用PHPExcel,相信你看完本文档之后,疑点瞬即消失

    yii框架中文文档、yii中文手册教程

    yii1.1中文文档 yii框架中文手册教程.pdf

    Yii2中文手册(中文教程完整版)

    本教程的发布遵循 Yii 文档使用许可. 版权所有 2014 (c) Yii Software LLC. 介绍 已定稿 关于 Yii 已定稿 从 Yii 1.1 升级 入门 已定稿 安装 Yii 已定稿 运行应用 已定稿 第一次问候 已定稿 使用 Forms 已定稿 玩...

    yii2swoole让yii2运行在swoole上

    yii2 swoole:让yii2运行在swoole上 , 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上

    深入解析PHP的Yii框架中的event事件机制

    事件 事件可以将自定义代码“注入”到现有代码中的...Yii的event机制 YII的事件机制,是其比较独特之处,合理使用好事件机制,会使各个组件之间的耦合更为松散,利于团体协作开发。 何时需要使用事件,如何给事件绑定

    Yii 中文帮助文档

    对于想使用 Yii 的开发者而言,熟悉面向对象编程(OOP)会使开发更加轻松,因为 Yii 就是一个纯 OOP 框架。 Yii 适合做什么? Yii 是一个通用 Web 编程框架,能够开发任何类型的 Web 应用。它是轻量级的,又装配了很...

    yii的小部件使用

    yii的小部件使用的总结,快速生成增删改查,感觉不同的需求进行逻辑修改!

    yii中文手册chm

    提供YII框架使用过程中的资料查询,中文版的,chm格式的,很好用

    Yii2中文手册pdf版

    yii中文手册,你可以通过两种方式安装 Yii:使用 Composer 或下载一个归档文件。推荐使用前者,这样只需执行一条 简单的命令就可以安装新的扩展或更新 Yii 了。 注意:和 Yii 1 不同,以标准方式安装 Yii 2 时会同时...

    Yii2.0中文学习手册

    Yii2.0中文学习手册

    YII框架中文手册

    YII框架中文手册,希望帮助需要帮助的人!

    Yii2使用resful api接口

    Yii api接口使用 或 modules模块配置及使用 使用参考说明 https://blog.csdn.net/yunxixiao/article/details/118514207

    深入理解Yii2.0

    采用的方式是分析框架的源代码,尝试从根上进行理解和阐述,并融入个人使用Yii开发的一些经验和教训。 通过本书,你将不仅仅了解到Yii怎么使用的实操技巧,还将掌握其实现的技术原理和内幕。 更为重要的是,接触...

    Yii中文教程

    权威的yii框架中文版开发文档,希望能够为您的yii框架学习带来帮助,让你的技术更上一层楼! zhihuizhan.com

    yii框架yii框架yii框架yii框架yii框架

    很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架

    yii2使用sign签名认证

    yii2框架结合sign签名认证,PHP安全机制

    Yii中文教程.doc

    Yii中文教程.docYii中文教程.docYii中文教程.docYii中文教程.doc

    yii框架中文手册教程

    yii框架中文手册教程,Yii 是一个基于组件、用于开发大型 Web 应用的高性能 ...它将 Web 编程中的可重用性发挥到极致, 能够显著加速开发进程。Yii(读作“易”)代表简单(easy)、高效(efficient)、可扩展(extensible).

    yii框架中文手册教程和YII模板

    yii框架中文手册教程和YII模板 我很辛苦才找到的

    yii2.0中文手册

    yii2.0官方比较全的中文手册,免费下载

Global site tag (gtag.js) - Google Analytics