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;
}
......
}
分享到:
相关推荐
在“yii1.1中文文档”中,包含了Yii 1.1版本的详尽教程和参考指南。这个版本是Yii框架的一个稳定版本,尽管现在已经有了更新的2.0版本,但仍然有许多项目基于1.1版本运行。文档通常会涵盖框架的基础知识,如MVC...
本教程的发布遵循 Yii 文档使用许可. 版权所有 2014 (c) Yii Software LLC. 介绍 已定稿 关于 Yii 已定稿 从 Yii 1.1 升级 入门 已定稿 安装 Yii 已定稿 运行应用 已定稿 第一次问候 已定稿 使用 Forms 已定稿 玩...
通过对Yii框架中小部件的使用以及利用gii工具快速生成增删改查功能的学习,我们可以看到,通过合理利用这些工具和技术,可以极大地提高Web应用的开发效率。特别是在处理常见的CRUD操作时,利用gii工具自动生成代码...
2. **性能提升**:"运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上"表明使用Swoole后,Yii2应用的处理速度和响应能力显著增强。Swoole的异步非阻塞I/O模型相比传统的PHP-FPM(FastCGI进程管理器)模型,可以...
3. **Extension管理**:Yii社区提供了大量高质量的扩展,如图库管理、支付接口等,可通过Yii的扩展管理工具轻松安装和使用。 4. **RESTful Web服务**:Yii支持构建RESTful API,方便移动应用和其他服务与Web应用...
1. 基于组件的设计:Yii框架采用组件化的设计模式,这意味着整个框架由多个可复用的组件构成,每个组件可以独立使用或配合其他组件完成特定的功能。这种设计让开发者能够灵活地组合和构建复杂的Web应用。 2. 高性能...
对于想使用 Yii 的开发者而言,熟悉面向对象编程(OOP)会使开发更加轻松,因为 Yii 就是一个纯 OOP 框架。 Yii 适合做什么? Yii 是一个通用 Web 编程框架,能够开发任何类型的 Web 应用。它是轻量级的,又装配了很...
在Yii2中,我们可以利用RESTful API来构建高效、灵活的Web服务。RESTful API是一种设计模式,它通过HTTP协议来操作资源,提供了创建、读取、更新和删除(CRUD)数据的能力。Yii2框架为构建RESTful API提供了强大的...
在使用这个插件时,开发者需要了解 Yii2 的 MVC 结构,以及如何在 Yii2 应用中安装和配置插件。他们还需要掌握 PHP 和相关的 Web 开发技术,以便根据需求调整 Eventon 插件的功能。此外,对于 "yii2-transliterator-...
在Yii2框架中,Sign签名认证是一种常见的安全措施,用于防止数据篡改和确保请求的来源可信。这种机制广泛应用于API开发,特别是在移动应用与服务器交互或者前后端分离的架构中。签名认证的核心原理是通过一种哈希...
本教程将深入探讨Yii框架的核心概念和使用方法,同时提供一份中文手册教程,以便于中文使用者更好地理解和应用。 首先,Yii框架的核心特性包括MVC(模型-视图-控制器)设计模式、Active Record ORM(对象关系映射)...
本篇文章将详细介绍如何在Yii2框架中使用SeasLog扩展来替换原生的日志模块,以提高写日志的效率。 首先,让我们了解SeasLog。SeasLog是一款高性能、易用的日志库,适用于PHP环境。它支持多级别日志、自定义日志格式...
请注意,开发版本不应在生产环境中使用。 ##### 2. 通过归档文件安装 - **下载归档文件**: 从官方网站`yiiframework.com`下载Yii2.0的归档文件。 - **解压缩文件**: 将下载的归档文件解压缩至Web服务器的根目录。 ...
- 如果需要安装Yii2.0的最新开发版本,可以使用: ``` composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic ``` 注意,开发版本仅适用于测试和开发环境。 #### 四、通过归档...
Yii1.1是其较早的一个版本,但即便如此,它仍然被许多开发者所使用,特别是那些需要维护旧项目的开发者。这个"yii1.1中文手册"是针对这个版本的详细文档,对于学习和理解Yii1.1框架的功能和工作原理至关重要。 Yii...
提供YII框架使用过程中的资料查询,中文版的,chm格式的,很好用
yii中文手册,你可以通过两种方式安装 Yii:使用 Composer 或下载一个归档文件。推荐使用前者,这样只需执行一条 简单的命令就可以安装新的扩展或更新 Yii 了。 注意:和 Yii 1 不同,以标准方式安装 Yii 2 时会同时...