/** gConfigReady 快速将用户配置覆盖到框架默认配置 * * @param preconfig 默认配置 * @param useconfig 用户配置 */ function gConfigReady($preconfig, $useconfig = null) { $nowconfig = $preconfig; if (is_array($useconfig)) { foreach ($useconfig as $key => $val) { if (is_array($useconfig[$key])) { @($nowconfig[$key] = is_array($nowconfig[$key]) ? gConfigReady($nowconfig[$key], $useconfig[$key]) : $useconfig[$key]); } else { @($nowconfig[$key] = $val); } } } return $nowconfig; }
/** * 替换数据,根据条件替换存在的记录,如记录不存在,则将条件与替换数据相加并新增一条记录。 * * @param conditions 数组形式,查找条件,请注意,仅能使用数组作为该条件! * @param row 数组形式,修改的数据 */ public function replace($conditions, $row) { if ($this->find($conditions)) { return $this->update($conditions, $row); } else { if (!is_array($conditions)) { gError('replace方法的条件务必是数组形式!'); } $rows = gConfigReady($conditions, $row); return $this->create($rows); } }
<?php defined('SITE_PATH') or exit('SET_ERROR'); // 载入系统常量定义 define('G_PATH', __DIR__); require G_PATH . "/gDefine.php"; // 载入核心函数库 require G_PATH . "/gFunctions.php"; //note 判断服务器类型(test,develop,product) gLoadServer(); //note 根据服务器类型加载配置文件 include SITE_PATH . "/include/config_" . QIHOOTYPE . ".php"; // 载入配置文件 empty($gConfig) && ($gConfig = null); $GLOBALS['G'] = gConfigReady(require G_PATH . "/gConfig.php", $gConfig); if (strtolower($GLOBALS['G']['mode']) == 'debug') { define('DEBUG', TRUE); } else { define('DEBUG', FALSE); } // 自动开启SESSION if ($GLOBALS['G']['auto_session']) { @session_start(); } gImport(G_CORE . "/gArgs.php", FALSE, TRUE); // 载入核心MVC架构文件 gImport(G_CORE . "/gController.php", FALSE, TRUE); gImport(G_CORE . "/gModel.php", FALSE, TRUE); gImport(G_CORE . "/gView.php", FALSE, TRUE); empty($_SERVER['REQUEST_URI']) && ($_SERVER['REQUEST_URI'] = ''); gParseURL(htmlspecialchars($_SERVER['REQUEST_URI']));