`
zccst
  • 浏览: 3322797 次
  • 性别: 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框架中文文档、yii中文手册教程

    在“yii1.1中文文档”中,包含了Yii 1.1版本的详尽教程和参考指南。这个版本是Yii框架的一个稳定版本,尽管现在已经有了更新的2.0版本,但仍然有许多项目基于1.1版本运行。文档通常会涵盖框架的基础知识,如MVC...

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

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

    yii的小部件使用

    通过对Yii框架中小部件的使用以及利用gii工具快速生成增删改查功能的学习,我们可以看到,通过合理利用这些工具和技术,可以极大地提高Web应用的开发效率。特别是在处理常见的CRUD操作时,利用gii工具自动生成代码...

    Yii中文教程

    ### Yii中文教程知识点详解 #### 一、Yii框架概述 - **定义与特点**:Yii是一种基于组件且专为开发大型Web应用程序而设计的高性能PHP框架。它将Web编程中的可重用性最大化,极大地提高了开发效率。"Yii"这个名称...

    yii2swoole让yii2运行在swoole上

    2. **性能提升**:"运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上"表明使用Swoole后,Yii2应用的处理速度和响应能力显著增强。Swoole的异步非阻塞I/O模型相比传统的PHP-FPM(FastCGI进程管理器)模型,可以...

    YII框架中文手册

    3. **Extension管理**:Yii社区提供了大量高质量的扩展,如图库管理、支付接口等,可通过Yii的扩展管理工具轻松安装和使用。 4. **RESTful Web服务**:Yii支持构建RESTful API,方便移动应用和其他服务与Web应用...

    yii框架中文手册教程

    1. 基于组件的设计:Yii框架采用组件化的设计模式,这意味着整个框架由多个可复用的组件构成,每个组件可以独立使用或配合其他组件完成特定的功能。这种设计让开发者能够灵活地组合和构建复杂的Web应用。 2. 高性能...

    Yii 中文帮助文档

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

    Yii2使用resful api接口

    在Yii2中,我们可以利用RESTful API来构建高效、灵活的Web服务。RESTful API是一种设计模式,它通过HTTP协议来操作资源,提供了创建、读取、更新和删除(CRUD)数据的能力。Yii2框架为构建RESTful API提供了强大的...

    yii2-transliterator-helper-master_eventon_yii2plugin_full_

    在使用这个插件时,开发者需要了解 Yii2 的 MVC 结构,以及如何在 Yii2 应用中安装和配置插件。他们还需要掌握 PHP 和相关的 Web 开发技术,以便根据需求调整 Eventon 插件的功能。此外,对于 "yii2-transliterator-...

    yii2使用sign签名认证

    在Yii2框架中,Sign签名认证是一种常见的安全措施,用于防止数据篡改和确保请求的来源可信。这种机制广泛应用于API开发,特别是在移动应用与服务器交互或者前后端分离的架构中。签名认证的核心原理是通过一种哈希...

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

    本教程将深入探讨Yii框架的核心概念和使用方法,同时提供一份中文手册教程,以便于中文使用者更好地理解和应用。 首先,Yii框架的核心特性包括MVC(模型-视图-控制器)设计模式、Active Record ORM(对象关系映射)...

    yii2使用SeasLog写日志

    本篇文章将详细介绍如何在Yii2框架中使用SeasLog扩展来替换原生的日志模块,以提高写日志的效率。 首先,让我们了解SeasLog。SeasLog是一款高性能、易用的日志库,适用于PHP环境。它支持多级别日志、自定义日志格式...

    yii2.0中文手册

    请注意,开发版本不应在生产环境中使用。 ##### 2. 通过归档文件安装 - **下载归档文件**: 从官方网站`yiiframework.com`下载Yii2.0的归档文件。 - **解压缩文件**: 将下载的归档文件解压缩至Web服务器的根目录。 ...

    Yii2.0中文学习手册

    - 如果需要安装Yii2.0的最新开发版本,可以使用: ``` composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic ``` 注意,开发版本仅适用于测试和开发环境。 #### 四、通过归档...

    yii1.1中文手册

    Yii1.1是其较早的一个版本,但即便如此,它仍然被许多开发者所使用,特别是那些需要维护旧项目的开发者。这个"yii1.1中文手册"是针对这个版本的详细文档,对于学习和理解Yii1.1框架的功能和工作原理至关重要。 Yii...

    yii中文手册chm

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

    Yii2中文手册pdf版

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

Global site tag (gtag.js) - Google Analytics