您的位置:首页 > 编程语言 > PHP开发

淘宝taobao sdk 2.0去除lotusphp

2012-12-05 16:48 369 查看
今天下载了一个淘宝的SDK,不过里面集成了lotusphp框架,而实际应用中,我们不希望有这个集成,或者我们希望应用到我们自己的框架中,那么就需要对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;

}

}

复制代码
因为很多框架本身已经使用过__autoload魔术方法了,这里我们自己定义一个自动加载方法,然后用PHP自带的方法进行注册。

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

));*/

}

复制代码
好了,现在你可以享受你的SDK路了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: