前言
最近给前一段时间搭建的wordpress商城对接第三方支付通道。小通道,没有现成的插件可用。只能自己写了。根据网上的资料,折腾了近一周。有时候一个很小的问题,也要折腾一天时间。只怪自己基础太菜,特此记录问题解决过程。
wordpress调试
wordpress 打开调试功能
//wp-config.php文件内添加
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG', true );
php打印调用堆栈
$tracelog = '';
$array =debug_backtrace();
unset($array[0]);
foreach($array as $row)
{
$tracelog .= $row['file'].':'.$row['line'].'行,调用方:'.$row['function']."\n";
}
error_log($tracelog);
打印array变量
error_log(__METHOD__ . PHP_EOL .print_r($postdata, true));
typecho
打印变量到文件
file_put_contents("debug.log", $data."\n",FILE_APPEND);
file_put_contents("eee.txt", $content);
封装打印函数
封装一个日志打印服务
/*
* 日志类
* 每天生成一个日志文件
*/
class LogService
{
public static function writeLog($position, $data, $dir = '')
{
//默认存放打印日志的目录
$dir_path = __DIR__ . '/../log/';
if ($dir) {
//ltrim移除字符串左侧的字符/,这里统一设置/
$dir_path .= ltrim($dir, '/');
}
//检查当前目录是否存在
if (!is_dir($dir_path)) {
//如果不存在则生成目录权限为777
mkdir($dir_path, 0755, true);
}
//rtrim移除字符串右侧的空白字符或其他预定义字符
$filepath = rtrim($dir_path, '/') . '/' . date("Ymd") . '.log';
//设置一个打印日志的起始文字
$delimiter_start = "\n+---------------------------- log start -----------------------------+\n记录时间:" . date("Y-m-d H:i:s") . "\n" . $position . "\n" . "----------------\n";
//设置一个打印日志的结束文字
$delimiter_end = "\n+---------------------------- log end -----------------------------+\n";
//将要打印的文字以json形式,并转义成中文的格式追加的指定目录中的日志文件内
file_put_contents($filepath, $delimiter_start . json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) . $delimiter_end, FILE_APPEND);
}
}
/*
//静态函数,不用实例化,可以直接引用方法
LogService::writeLog(__FILE__ . ':' . __LINE__, $result, $this->id); //写入日志到log下的目录中
*/
评论 (0)