123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- <?php
- /**
- * FecShop file.
- * @link http://www.fecshop.com/
- * @copyright Copyright (c) 2016 FecShop Software LLC
- * @license http://www.fecshop.com/license/
- */
- namespace fecshop\components;
- use Yii;
- use yii\base\BootstrapInterface;
- use yii\base\Component;
- /**
- * @author Terry Zhao <2358269014@qq.com>
- * @since 1.0
- */
- class ServiceLog extends Component
- {
- public $log_config;
- protected $_serviceContent;
- protected $_serviceUid;
- protected $_isServiceLog;
- protected $_isServiceLogDbPrint;
- protected $_isServiceLogHtmlPrint;
- protected $_isServiceLogDbPrintByParam;
-
- protected $_logModelName = '\fecshop\models\mongodb\FecshopServiceLog';
- protected $_logModel;
-
- //public function init(){
- // parent::init();
- //
- //}
- /**
- * Log:get log uuid .
- */
- public function getLogUid()
- {
- if (!$this->_serviceUid) {
- $this->_serviceUid = $this->guid();
- }
- return $this->_serviceUid;
- }
- /**
- * ServiceLog:是否开启service log.
- */
- public function isServiceLogEnable()
- {
- if ($this->_isServiceLog === null) {
- if (
- isset($this->log_config['services']['enable'])
- && $this->log_config['services']['enable']
- ) {
- $this->_isServiceLog = true;
- } else {
- $this->_isServiceLog = false;
- }
- }
- return $this->_isServiceLog;
- }
-
- public $serviceLogHtmlPrintStr;
-
-
- public function initServiceLogDbPrint()
- {
- if (!$this->_logModel) {
- list($this->_logModelName,$this->_logModel) = Yii::mapGet($this->_logModelName);
- }
- }
- /**
- * ServiceLog:保存serviceLog.
- */
- public function printServiceLog($log_info)
- {
- if ($this->isServiceLogDbPrint()) {
- $this->initServiceLogDbPrint();
- $this->_logModel->getCollection()->save($log_info);
- }
- if ($this->isServiceLogHtmlPrint() || $this->isServiceLogDbPrintByParam()) {
- $str = '<br>#################################<br><table>';
- foreach ($log_info as $k=>$v) {
- if (is_array($v)) {
- $v = implode('<br>', $v);
- $str .= "<tr>
- <td>$k</td><td>$v</td>
- </tr>";
- } else {
- $str .= "<tr>
- <td>$k</td><td>$v</td>
- </tr>";
- }
- }
- $str .= '</table><br>#################################<br><br>';
- $this->serviceLogHtmlPrintStr .= $str;
- }
- }
- // 直接在前端打印service Log
- public function getServiceLogHtmlPrintStr(){
- if ($this->isServiceLogEnable()) {
- return $this->serviceLogHtmlPrintStr;
- } else {
- return '';
- }
- }
- /**
- * ServiceLog:if service log db print is enable.
- */
- protected function isServiceLogDbPrint()
- {
- if ($this->_isServiceLogDbPrint === null) {
- if (
- isset($this->log_config['services']['enable'])
- && $this->log_config['services']['enable']
- && isset($this->log_config['services']['dbprint'])
- && $this->log_config['services']['dbprint']
- ) {
- $this->_isServiceLogDbPrint = true;
- } else {
- $this->_isServiceLogDbPrint = false;
- }
- }
- return $this->_isServiceLogDbPrint;
- }
- /**
- * ServiceLog:在前台打印servicelog是否开启.
- */
- protected function isServiceLogHtmlPrint()
- {
- if ($this->_isServiceLogHtmlPrint === null) {
- if (
- isset($this->log_config['services']['enable'])
- && $this->log_config['services']['enable']
- && isset($this->log_config['services']['htmlprint'])
- && $this->log_config['services']['htmlprint']
- ) {
- $this->_isServiceLogHtmlPrint = true;
- } else {
- $this->_isServiceLogHtmlPrint = false;
- }
- }
- return $this->_isServiceLogHtmlPrint;
- }
- /**
- * ServiceLog:通过参数,在前台打印servicelog是否开启.
- */
- protected function isServiceLogDbPrintByParam()
- {
- if ($this->_isServiceLogDbPrintByParam === null) {
- $this->_isServiceLogDbPrintByParam = false;
- if (
- isset($this->log_config['services']['enable'])
- && $this->log_config['services']['enable']
- && isset($this->log_config['services']['htmlprintbyparam']['enable'])
- && $this->log_config['services']['htmlprintbyparam']['enable']
- && isset($this->log_config['services']['htmlprintbyparam']['paramVal'])
- && ($paramVal = $this->log_config['services']['htmlprintbyparam']['paramVal'])
- && isset($this->log_config['services']['htmlprintbyparam']['paramKey'])
- && ($paramKey = $this->log_config['services']['htmlprintbyparam']['paramKey'])
- ) {
- if (Yii::$app->request->get($paramKey) == $paramVal) {
- $this->_isServiceLogDbPrintByParam = true;
- }
- }
- }
- return $this->_isServiceLogDbPrintByParam;
- }
- /**
- * generate uuid .
- */
- protected function guid()
- {
- if (function_exists('com_create_guid')) {
- return com_create_guid();
- } else {
- mt_srand((float) microtime() * 10000); //optional for php 4.2.0 and up.
- $charid = strtoupper(md5(uniqid(rand(), true)));
- $hyphen = chr(45); // "-"
- $uuid = //chr(123)// "{"
- substr($charid, 0, 8).$hyphen
- .substr($charid, 8, 4).$hyphen
- .substr($charid, 12, 4).$hyphen
- .substr($charid, 16, 4).$hyphen
- .substr($charid, 20, 12)
- //.chr(125)// "}"
- ;
- return $uuid;
- }
- }
- }
|