<?php namespace KIF\Core; use KIF\Core\Config; use Exception; /** * * In Process Call的缩写,即 进程内调用 * 目的: * 1、保护上下文环境 * 2、简化调用代码 * 使用场景: * 支持在任何地方调用基于KIF框架的app。 * @author husserlgao * */ class IPC { /** * * 调用 * @param string $conf_file 要调用的app类的配置文件 * @param callback $callback 回调执行的函数 */ static public function call($callback, $conf_file) { # 尝试保存调用前的配置 try { $pre_app_conf_path = Config::getInstance()->get('conf_path'); } catch (Exception $e) { $pre_app_conf_path = false; } Config::load($conf_file); $callback(); # 恢复到调用前的应用配置 if ($pre_app_conf_path) { Config::load($pre_app_conf_path); } } /** * * 调用!!!这是个临时的方法,只因没有时间去把调call的地方改过来。 * @param string $conf_file 要调用的app类的配置文件 * @param callback $callback 回调执行的函数 */ static public function call2($callback, $conf_file) { # 尝试保存调用前的配置 try { $pre_app_conf_path = Config::getInstance()->get('conf_path'); } catch (Exception $e) { $pre_app_conf_path = false; } Config::load($conf_file); $callback(); # 恢复到调用前的应用配置 if ($pre_app_conf_path) { Config::load($pre_app_conf_path); } } }