今天下载了一个淘宝的
SDK
,不过里面集成了lotusphp
框架
,而实际应用中,我们不希望有这个集成,或者我们希望应用到我们自己的
框架
中,那么就需要对
SDK
进行基本的修改了。下面说下步骤
第一步:
修改TopSdk.php文件
复制代码
因为很多
框架
本身已经
使用
过__autoload魔术方法了,这里我们自己定义一个自动加载方法,然后用PHP自带的方法进行注册。
spl_autoload_register('autoload');
第二步:
日志保存
SDK 用了LOTUSPHP里面的LOGGER类,进行日志保存
修改TopClient类,找到相应的Logger的地方,替换成你自己的日志保存
复制代码
还有一处
复制代码
好了,现在你可以享受你的
SDK
路了
第一步:
修改TopSdk.php文件
- <?php
- /**
- * TOP SDK 入口文件
- * 请不要修改这个文件,除非你知道怎样修改以及怎样恢复
- * @author wuxiao
- */
-
- /**
- * 定义常量开始
- * 在include("TopSdk.php")之前定义这些常量,不要直接修改本文件,以利于升级覆盖
- */
- /**
- * SDK工作目录
- * 存放日志,TOP缓存数据
- */
- if (!defined("TOP_SDK_WORK_DIR"))
- {
- define("TOP_SDK_WORK_DIR", "/tmp/");
- }
- /**
- * 是否处于开发模式
- * 在你自己电脑上开发程序的时候千万不要设为false,以免缓存造成你的代码修改了不生效
- * 部署到生产环境正式运营后,如果性能压力大,可以把此常量设定为false,能提高运行速度(对应的代价就是你下次升级程序时要清一下缓存)
- */
- if (!defined("TOP_SDK_DEV_MODE"))
- {
- define("TOP_SDK_DEV_MODE", true);
- }
- /**
- * 定义常量结束
- */
-
- /**
- * 加载SDK
- */
- $apiHome = dirname(__FILE__) . DIRECTORY_SEPARATOR;
-
- include $apiHome.'top/TopClient.php';
- include $apiHome.'top/RequestCheckUtil.php';
- function autoload($name){
- global $api_home;
- try {
- include $apiHome.'top/request/'.$name.'.php';
- }catch (Exception $e){
- echo $e->getMessage();
- exit;
- }
- }
spl_autoload_register('autoload');
第二步:
日志保存
SDK 用了LOTUSPHP里面的LOGGER类,进行日志保存
修改TopClient类,找到相应的Logger的地方,替换成你自己的日志保存
- $localIp = isset($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : "CLI";
- $logFile = LOG_PATH . "top_comm_err_" . $this->appkey . "_" . date("Y-m-d") . ".log";
- $logData = array(
- date("Y-m-d H:i:s"),
- $apiName,
- $this->appkey,
- $localIp,
- PHP_OS,
- $this->sdkVersion,
- $requestUrl,
- $errorCode,
- str_replace("\n","",$responseTxt)
- );
- $message = implode("\t", $logData);
- ScrollLog::write($message,'ERR',3,$logFile);
- /*$logger = new LtLogger;
- $logger->conf["log_file"] = rtrim(TOP_SDK_WORK_DIR, '\\/') . '/' . "logs/top_comm_err_" . $this->appkey . "_" . date("Y-m-d") . ".log";
- $logger->conf["separator"] = "^_^";
- $logData = array(
- date("Y-m-d H:i:s"),
- $apiName,
- $this->appkey,
- $localIp,
- PHP_OS,
- $this->sdkVersion,
- $requestUrl,
- $errorCode,
- str_replace("\n","",$responseTxt)
- );
- $logger->log($logData);*/
- //如果TOP返回了错误码,记录到业务错误日志中
- if (isset($respObject->code))
- {
- $logFile = LOG_PATH . "top_biz_err_" . $this->appkey . "_" . date("Y-m-d") . ".log";
- $logData = array(
- date("Y-m-d H:i:s"),
- $resp
- );
- $message = implode("\t", $logData);
- ScrollLog::write($message,'ERR',3,$logFile);
- /*$logger = new LtLogger;
- $logger->conf["log_file"] = rtrim(TOP_SDK_WORK_DIR, '\\/') . '/' . "logs/top_biz_err_" . $this->appkey . "_" . date("Y-m-d") . ".log";
- $logger->log(array(
- date("Y-m-d H:i:s"),
- $resp
- ));*/
- }