婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 再談Yii Framework框架中的事件event原理與應用

再談Yii Framework框架中的事件event原理與應用

熱門標簽:重慶外呼電銷系統多少錢 南寧電話外呼系統線路 邢臺400電話辦理 嘟嘟云外呼系統 咸陽電銷 濟源百應電銷機器人聯系方式 辦理400電話哪家好點 南京3D地圖標注 正規電銷機器人系統

本文實例講述了Yii Framework框架中的事件event原理與應用。分享給大家供大家參考,具體如下:

再談Yii Framework中的事件event,我寫過的關于Yii事件event的另一篇文章

Yii Framework 中事件和行為的區別和應用 https://www.jb51.net/article/184208.htm

假設有類MyComponent,它是繼承于CComponent,通過查看 CComponent 的 __set() 方法,

public function __set($name,$value)
{
  $setter='set'.$name;
  if(method_exists($this,$setter))
    return $this->$setter($value);
  else if(strncasecmp($name,'on',2)===0  method_exists($this,$name))
  {
    // duplicating getEventHandlers() here for performance
    $name=strtolower($name);
    if(!isset($this->_e[$name]))
      $this->_e[$name]=new CList;
    return $this->_e[$name]->add($value);
  }
  else if(is_array($this->_m))
  {
    foreach($this->_m as $object)
    {
      if($object->getEnabled()  (property_exists($object,$name) || $object->canSetProperty($name)))
        return $object->$name=$value;
    }
  }
  if(method_exists($this,'get'.$name))
    throw new CException(Yii::t('yii','Property "{class}.{property}" is read only.',
      array('{class}'=>get_class($this), '{property}'=>$name)));
  else
    throw new CException(Yii::t('yii','Property "{class}.{property}" is not defined.',
      array('{class}'=>get_class($this), '{property}'=>$name)));
}

第四行可知,我們可以通過 onXXX 來直接設置事件的。

綁定到全局事件處理

方法一:

直接在main.php里面定義

/***************************************************
在我們想要的內容的前后出現了這些代碼
只是為了說明,我們添加的內容是要放在
這個配置數據的一維里面。
'import'=>array(
  'application.models.*',
  'application.components.*',
  'application.helpers.*',
),
'defaultController'=>'post',
***************************************************/

//其它代碼
'import'=>array(
  'application.models.*',
  'application.components.*',
  'application.helpers.*',
),

/************** 這才是我們想要添加的代碼 **************/
'onBeginRequest' => array('MyEventHandler', 'MyEventHandlerMethod'),

'defaultController'=>'post',
//其它代碼

方法二:

//參考自framework/logging/CLogRouter.php的init()方法
Yii::app()->attachEventHandler('onEndRequest',array($this,'processLogs'));

綁定到局部事件處理

隨時隨地無論在controller還是model里面,只要是CComponent的子類,都可以這樣定義,

$myComponent->onClick = $callback;

這里的 $callback 指向了一個有效的 PHP 回調。它可以是一個全局函數也可以是類中的一個方法。

如果是后者,它必須以一個數組的方式提供 : array($object,'methodName')。

其它文章推薦:

Yii組件的事件機制分析 https://www.jb51.net/article/184203.htm

更多關于Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家基于Yii框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • 從零開始學YII2框架(六)高級應用程序模板
  • yii2高級應用之自定義組件實現全局使用圖片上傳功能的方法
  • YII Framework框架使用YIIC快速創建YII應用之migrate用法實例詳解
  • YII Framework框架教程之使用YIIC快速創建YII應用詳解
  • Yii2框架redis基本應用示例
  • Yii框架學習筆記之應用組件操作示例
  • Yii框架常見緩存應用實例小結
  • Yii Framework框架中事件和行為的區別及應用實例分析
  • Yii框架應用組件用法實例分析
  • Yii 框架應用(Applications)操作實例詳解

標簽:武漢 唐山 河南 黃山 平頂山 隴南 通遼 南通

巨人網絡通訊聲明:本文標題《再談Yii Framework框架中的事件event原理與應用》,本文關鍵詞  再談,Yii,Framework,框架,中的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《再談Yii Framework框架中的事件event原理與應用》相關的同類信息!
  • 本頁收集關于再談Yii Framework框架中的事件event原理與應用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 东乡县| 华坪县| 额尔古纳市| 泉州市| 固镇县| 灯塔市| 芜湖市| 上杭县| 板桥市| 西乌| 穆棱市| 临高县| 营山县| 万盛区| 清流县| 天镇县| 体育| 安龙县| 尚义县| 肇庆市| 海兴县| 常熟市| 清水县| 临沭县| 九龙坡区| 乌海市| 新丰县| 洛隆县| 华坪县| 丰宁| 鄯善县| 昭觉县| 顺昌县| 且末县| 潼关县| 谢通门县| 米易县| 县级市| 克东县| 沁阳市| 沙雅县|