12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- <?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);
- }
- }
- }
|