当前位置: 首页>>代码示例>>PHP>>正文


PHP Hook::listen方法代码示例

本文整理汇总了PHP中Hook::listen方法的典型用法代码示例。如果您正苦于以下问题:PHP Hook::listen方法的具体用法?PHP Hook::listen怎么用?PHP Hook::listen使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Hook的用法示例。


在下文中一共展示了Hook::listen方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: ajaxReturn

 /**
  * Ajax方式返回数据到客户端
  * @access protected
  * @param mixed $data 要返回的数据
  * @param String $type AJAX返回数据格式
  * @return void
  */
 protected function ajaxReturn($data, $type = '', $json_option = 0)
 {
     $data['referer'] = $data['url'] ? $data['url'] : "";
     $data['state'] = $data['status'] ? "success" : "fail";
     if (empty($type)) {
         $type = C('DEFAULT_AJAX_RETURN');
     }
     switch (strtoupper($type)) {
         case 'JSON':
             // 返回JSON数据格式到客户端 包含状态信息
             header('Content-Type:application/json; charset=utf-8');
             exit(json_encode($data, $json_option));
         case 'XML':
             // 返回xml格式数据
             header('Content-Type:text/xml; charset=utf-8');
             exit(xml_encode($data));
         case 'JSONP':
             // 返回JSON数据格式到客户端 包含状态信息
             header('Content-Type:application/json; charset=utf-8');
             $handler = isset($_GET[C('VAR_JSONP_HANDLER')]) ? $_GET[C('VAR_JSONP_HANDLER')] : C('DEFAULT_JSONP_HANDLER');
             exit($handler . '(' . json_encode($data, $json_option) . ');');
         case 'EVAL':
             // 返回可执行的js脚本
             header('Content-Type:text/html; charset=utf-8');
             exit($data);
         case 'AJAX_UPLOAD':
             // 返回JSON数据格式到客户端 包含状态信息
             header('Content-Type:text/html; charset=utf-8');
             exit(json_encode($data, $json_option));
         default:
             // 用于扩展其他返回格式数据
             Hook::listen('ajax_return', $data);
     }
 }
开发者ID:lvxiaolin,项目名称:thinkcfm,代码行数:41,代码来源:AppframeController.class.php

示例2: init

 /**
  * 应用程序初始化
  * @access public
  * @return void
  */
 public static function init()
 {
     // 加载动态应用公共文件和配置
     load_ext_file(COMMON_PATH);
     // 日志目录转换为绝对路径 默认情况下存储到公共模块下面
     C('LOG_PATH', realpath(LOG_PATH) . '/Common/');
     // 定义当前请求的系统常量
     define('NOW_TIME', $_SERVER['REQUEST_TIME']);
     define('REQUEST_METHOD', $_SERVER['REQUEST_METHOD']);
     define('IS_GET', REQUEST_METHOD == 'GET' ? true : false);
     define('IS_POST', REQUEST_METHOD == 'POST' ? true : false);
     define('IS_PUT', REQUEST_METHOD == 'PUT' ? true : false);
     define('IS_DELETE', REQUEST_METHOD == 'DELETE' ? true : false);
     // URL调度
     Dispatcher::dispatch();
     if (C('REQUEST_VARS_FILTER')) {
         // 全局安全过滤
         array_walk_recursive($_GET, 'think_filter');
         array_walk_recursive($_POST, 'think_filter');
         array_walk_recursive($_REQUEST, 'think_filter');
     }
     // URL调度结束标签
     Hook::listen('url_dispatch');
     define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' || !empty($_POST[C('VAR_AJAX_SUBMIT')]) || !empty($_GET[C('VAR_AJAX_SUBMIT')]) ? true : false);
     // TMPL_EXCEPTION_FILE 改为绝对地址
     C('TMPL_EXCEPTION_FILE', realpath(C('TMPL_EXCEPTION_FILE')));
     return;
 }
开发者ID:Aaron-zh,项目名称:ThinkPHPFull,代码行数:33,代码来源:App.class.php

示例3: run

 /**
  * 运行框架
  */
 public static function run()
 {
     try {
         self::init();
         Hook::init(BASE_PATH);
         Hook::listen('appBegin');
         Hook::listen('routeParseUrl', array(Config::get('REWRITE_RULE'), Config::get('REWRITE_ON')));
         //default route
         if (!defined('APP_NAME') || !defined('CONTROLLER_NAME') || !defined('ACTION_NAME')) {
             Route::parseUrl(Config::get('REWRITE_RULE'), Config::get('REWRITE_ON'));
         }
         //execute action
         $controller = '\\app\\' . APP_NAME . '\\controller\\' . CONTROLLER_NAME . 'Controller';
         $action = ACTION_NAME;
         if (!class_exists($controller)) {
             throw new \Exception("Controller '{$controller}' not found", 404);
         }
         $obj = new $controller();
         if (!method_exists($obj, $action)) {
             throw new \Exception("Action '{$controller}::{$action}()' not found", 404);
         }
         Hook::listen('actionBefore', array($obj, $action));
         $obj->{$action}();
         Hook::listen('actionAfter', array($obj, $action));
     } catch (\Exception $e) {
         Hook::listen('appError', array($e));
     }
     Hook::listen('appEnd');
 }
开发者ID:lerre,项目名称:canphp,代码行数:32,代码来源:App.php

示例4: send

 /**
  * 发送数据到客户端
  * @access protected
  * @param mixed $data 要返回的数据
  * @param String $type 返回数据格式
  * @param bool $return 是否返回数据
  * @return void
  */
 public static function send($data = '', $type = '', $return = false)
 {
     $type = strtolower($type ?: self::$type);
     $headers = ['json' => 'application/json', 'xml' => 'text/xml', 'html' => 'text/html', 'jsonp' => 'application/javascript', 'script' => 'application/javascript', 'text' => 'text/plain'];
     if (!headers_sent() && isset($headers[$type])) {
         header('Content-Type:' . $headers[$type] . '; charset=utf-8');
     }
     $data = $data ?: self::$data;
     if (is_callable(self::$tramsform)) {
         $data = call_user_func_array(self::$tramsform, [$data]);
     } else {
         switch ($type) {
             case 'json':
                 // 返回JSON数据格式到客户端 包含状态信息
                 $data = json_encode($data, JSON_UNESCAPED_UNICODE);
                 break;
             case 'jsonp':
                 // 返回JSON数据格式到客户端 包含状态信息
                 $handler = !empty($_GET[Config::get('var_jsonp_handler')]) ? $_GET[Config::get('var_jsonp_handler')] : Config::get('default_jsonp_handler');
                 $data = $handler . '(' . json_encode($data, JSON_UNESCAPED_UNICODE) . ');';
                 break;
             case '':
                 // 类型为空不做处理
                 break;
             default:
                 // 用于扩展其他返回格式数据
                 APP_HOOK && Hook::listen('return_data', $data);
         }
     }
     if ($return) {
         return $data;
     }
     echo $data;
     self::isExit() && exit;
 }
开发者ID:cy520win,项目名称:cyweb,代码行数:43,代码来源:response.php

示例5: display

 /**
  * 显示视图
  * @param null $tplFile 模板文件
  * @param int $cacheTime 缓存时间
  * @param null $cachePath 缓存目录
  * @param string $contentType 文件类型
  * @param bool $show 是否显示
  * @return mixed
  */
 protected function display($tplFile = null, $cacheTime = -1, $cachePath = null, $contentType = "text/html", $show = true)
 {
     Hook::listen("VIEW_START");
     //执行视图对象中的display同名方法
     $status = $this->view->display($tplFile, $cacheTime, $cachePath, $contentType, $show);
     Hook::listen("VIEW_END");
     return $status;
 }
开发者ID:suhanyujie,项目名称:spider,代码行数:17,代码来源:AddonController.class.php

示例6: notifyActionAction

 public function notifyActionAction()
 {
     $params = array('payment_agent' => 'alipay', 'method' => 'notify_action', 'data' => $this->input);
     try {
         Hook::listen('process_payment', $event = new EventData($params));
         if ($event->getData('result/0/error_code')) {
             throw new Exception();
         }
         //$this->_ajaxReturn('success','200','EVAL');
         echo "success";
     } catch (Exception $e) {
         echo "fail";
     }
 }
开发者ID:xinson,项目名称:yafPlus,代码行数:14,代码来源:Alipay.php

示例7: Login

 public function Login()
 {
     if (IS_POST) {
         if ($this->db->login()) {
         } else {
             $this->error($this->db->error);
         }
         //插件监听
         Hook::listen('ADMIN_LOGIN_SUCCESS');
         go("Index/index");
     } else {
         //登录前监听插件
         Hook::listen('ADMIN_LOGIN_START');
         $this->display();
     }
 }
开发者ID:suhanyujie,项目名称:spider,代码行数:16,代码来源:LoginController.class.php

示例8: run

 /**
  * 运行应用
  * @access public
  * @reutrn mixed
  */
 public static function run()
 {
     //session处理
     session(C("SESSION_OPTIONS"));
     //执行应用开始钓子
     Hook::listen("APP_INIT");
     //执行应用开始钓子
     Hook::listen("APP_BEGIN");
     //Debug Start
     DEBUG and Debug::start("APP_BEGIN");
     self::start();
     //Debug End
     DEBUG and Debug::show("APP_BEGIN", "APP_END");
     //日志记录
     !DEBUG and C('LOG_RECORD') and Log::save();
     //应用结束钓子
     Hook::listen("APP_END");
 }
开发者ID:hdbaiyu,项目名称:HDPHP,代码行数:23,代码来源:App.class.php

示例9: init

 private static function init()
 {
     // 加载应用公共文件和配置
     // C(include CONF_PATH . 'config' .CONF_EXT);
     // 定义当前请求的系统常量
     define('NOW_TIME', $_SERVER['REQUEST_TIME']);
     define('REQUEST_METHOD', $_SERVER['REQUEST_METHOD']);
     define('IS_GET', REQUEST_METHOD == 'GET' ? true : false);
     define('IS_POST', REQUEST_METHOD == 'POST' ? true : false);
     define('IS_PUT', REQUEST_METHOD == 'PUT' ? true : false);
     define('IS_DELETE', REQUEST_METHOD == 'DELETE' ? true : false);
     define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' ? true : false);
     // URL调度
     \Core\Dispatcher::run();
     // URL调度结束标签
     Hook::listen('url_dispatch');
     //没有对应的行为函数,返回null notes by lwh 2015-11-19
     return;
 }
开发者ID:lwh156250,项目名称:LWHPHP,代码行数:19,代码来源:App.class.php

示例10: __construct

 public function __construct()
 {
     //设置字符集
     header("Content-type:text/html;charset=" . Config::get('app.charset'));
     //时区
     date_default_timezone_set(Config::get('app.timezone'));
     //路由处理
     $this->ParseRoute();
     //导入钓子
     Hook::import(Config::get('hook'));
     //定义常量
     $this->DefineConsts();
     //应用开始钓子
     Hook::listen("app_begin");
     $this->ExecuteAction();
     //应用结束钩子
     Hook::listen("app_end");
     //保存日志
     Log::save();
 }
开发者ID:arnold1119,项目名称:cms,代码行数:20,代码来源:Kernel.php

示例11: run

 public static function run()
 {
     self::_init();
     //设置外部路径
     //执行应用开始钓子
     Hook::listen("APP_INIT");
     //执行应用开始钓子
     Hook::listen("APP_BEGIN");
     set_error_handler(array(__CLASS__, 'error'));
     //接受php普通错误
     register_shutdown_function(array(__CLASS__, 'fatal_error'));
     //接受致命错误
     self::_user_import();
     //加载用户自定义扩展
     spl_autoload_register(array(__CLASS__, '_autoload'));
     //设置自动载入
     self::_create_demo();
     //创建一个demo
     self::_app_run();
     //让应用默认跑起来
     //应用结束钓子
     Hook::listen("APP_END");
 }
开发者ID:sujinw,项目名称:webPHP,代码行数:23,代码来源:Appcation.class.php

示例12: dispatch

 /**
  * URL调度
  * @access public
  *
  * @param $config
  *
  * @throws Exception
  */
 public static function dispatch($config)
 {
     if (isset($_GET[$config['var_pathinfo']])) {
         // 判断URL里面是否有兼容模式参数
         $_SERVER['PATH_INFO'] = $_GET[$config['var_pathinfo']];
         unset($_GET[$config['var_pathinfo']]);
     } elseif (IS_CLI) {
         // CLI模式下 index.php module/controller/action/params/...
         $_SERVER['PATH_INFO'] = isset($_SERVER['argv'][1]) ? $_SERVER['argv'][1] : '';
     }
     // 检测域名部署
     if (!IS_CLI && !empty($config['url_domain_deploy'])) {
         if ($config['url_domain_rules']) {
             Route::domain($config['url_domain_rules']);
         }
         if ($match = Route::checkDomain()) {
             !defined('BIND_MODULE') && !empty($match[0]) && define('BIND_MODULE', $match[0]);
             !defined('BIND_CONTROLLER') && !empty($match[1]) && define('BIND_CONTROLLER', $match[1]);
             !defined('BIND_ACTION') && !empty($match[2]) && define('BIND_ACTION', $match[2]);
         }
     }
     // 监听path_info
     APP_HOOK && Hook::listen('path_info');
     // 分析PATHINFO信息
     if (!isset($_SERVER['PATH_INFO'])) {
         foreach ($config['pathinfo_fetch'] as $type) {
             if (!empty($_SERVER[$type])) {
                 $_SERVER['PATH_INFO'] = 0 === strpos($_SERVER[$type], $_SERVER['SCRIPT_NAME']) ? substr($_SERVER[$type], strlen($_SERVER['SCRIPT_NAME'])) : $_SERVER[$type];
                 break;
             }
         }
     }
     // [模块,控制器,操作]
     $result = [null, null, null];
     if (empty($_SERVER['PATH_INFO'])) {
         $_SERVER['PATH_INFO'] = '';
         define('__INFO__', '');
         define('__EXT__', '');
     } else {
         $_SERVER['PATH_INFO'] = trim($_SERVER['PATH_INFO'], '/');
         define('__INFO__', $_SERVER['PATH_INFO']);
         // URL后缀
         define('__EXT__', strtolower(pathinfo($_SERVER['PATH_INFO'], PATHINFO_EXTENSION)));
         if (__INFO__) {
             if ($config['url_deny_suffix'] && preg_match('/\\.(' . $config['url_deny_suffix'] . ')$/i', __INFO__)) {
                 throw new Exception('url suffix deny');
             }
             // 去除URL后缀
             $_SERVER['PATH_INFO'] = preg_replace($config['url_html_suffix'] ? '/\\.(' . trim($config['url_html_suffix'], '.') . ')$/i' : '/\\.' . __EXT__ . '$/i', '', __INFO__);
             $depr = $config['pathinfo_depr'];
             // 还原劫持后真实pathinfo
             $path_info = (defined('BIND_MODULE') ? BIND_MODULE . $depr : '') . (defined('BIND_CONTROLLER') ? BIND_CONTROLLER . $depr : '') . (defined('BIND_ACTION') ? BIND_ACTION . $depr : '') . $_SERVER['PATH_INFO'];
             // 路由检测
             if (!empty($config['url_route_on'])) {
                 // 开启路由 则检测路由配置
                 Route::register(!empty($config['route']) ? $config['route'] : null);
                 $result = Route::check($path_info, $depr);
                 if (false === $result) {
                     // 路由无效
                     if ($config['url_route_must']) {
                         throw new Exception('route not define ');
                     } else {
                         // 继续分析URL
                         $result = Route::parseUrl($path_info, $depr);
                     }
                 }
             } else {
                 // 分析URL地址
                 $result = Route::parseUrl($path_info, $depr);
             }
         }
     }
     if (APP_MULTI_MODULE) {
         $module = strtolower($result[0] ?: $config['default_module']);
         if ($maps = $config['url_module_map']) {
             if (isset($maps[$module])) {
                 // 记录当前别名
                 define('MODULE_ALIAS', $module);
                 // 获取实际的项目名
                 $module = $maps[MODULE_ALIAS];
             } elseif (array_search($module, $maps)) {
                 // 禁止访问原始项目
                 $module = '';
             }
         }
         // 获取模块名称
         define('MODULE_NAME', defined('BIND_MODULE') ? BIND_MODULE : strip_tags($module));
         // 模块初始化
         if (MODULE_NAME && !in_array(MODULE_NAME, $config['deny_module_list']) && is_dir(APP_PATH . MODULE_NAME)) {
             APP_HOOK && Hook::listen('app_begin');
             define('MODULE_PATH', APP_PATH . MODULE_NAME . DS);
             define('VIEW_PATH', MODULE_PATH . VIEW_LAYER . DS);
//.........这里部分代码省略.........
开发者ID:xl602,项目名称:think,代码行数:101,代码来源:app.php

示例13: compiler

 /**
  * 编译模板文件内容
  * @access protected
  * @param mixed $tmplContent 模板内容
  * @return string
  */
 protected function compiler($tmplContent)
 {
     //模板解析
     $tmplContent = $this->parse($tmplContent);
     // 还原被替换的Literal标签
     $tmplContent = preg_replace_callback('/<!--###literal(\\d+)###-->/is', array($this, 'restoreLiteral'), $tmplContent);
     // 添加安全代码
     $tmplContent = '<?php if (!defined(\'THINK_PATH\')) exit();?>' . $tmplContent;
     // 优化生成的php代码
     $tmplContent = str_replace('?><?php', '', $tmplContent);
     // 模版编译过滤标签
     Hook::listen('template_filter', $tmplContent);
     return strip_whitespace($tmplContent);
 }
开发者ID:devsnippet,项目名称:Thinkphp_init,代码行数:20,代码来源:Template.class.php

示例14: fetch

 public function fetch($templateFile = '', $content = '', $prefix = '')
 {
     if (empty($content)) {
         $templateFile = $this->parseTemplate($templateFile);
         if (!is_file($templateFile)) {
             E(L('_TEMPLATE_NOT_EXIST_') . ':' . $templateFile);
         }
     } else {
         defined('THEME_PATH') or define('THEME_PATH', $this->getThemePath());
     }
     ob_start();
     ob_implicit_flush(0);
     if ('php' == strtolower(C('TMPL_ENGINE_TYPE'))) {
         $_content = $content;
         extract($this->tVar, EXTR_OVERWRITE);
         empty($_content) ? include $templateFile : eval('?>' . $_content);
     } else {
         $params = array('var' => $this->tVar, 'file' => $templateFile, 'content' => $content, 'prefix' => $prefix);
         Hook::listen('view_parse', $params);
     }
     $content = ob_get_clean();
     Hook::listen('view_filter', $content);
     return $content;
 }
开发者ID:artkingsun,项目名称:artBlog,代码行数:24,代码来源:common~runtime.php

示例15: run

 /**
  * 运行应用实例 入口文件使用的快捷方法
  * @access public
  * @return void
  */
 public static function run()
 {
     // 应用初始化标签
     Hook::listen('app_init');
     App::init();
     // 应用开始标签
     Hook::listen('app_begin');
     // Session初始化
     if (!IS_CLI) {
         session(C('SESSION_OPTIONS'));
     }
     // 记录应用初始化时间
     G('initTime');
     App::exec();
     // 应用结束标签
     Hook::listen('app_end');
     return;
 }
开发者ID:hejiawang,项目名称:ThinkPHPTest,代码行数:23,代码来源:App.class.php


注:本文中的Hook::listen方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。