/** * @业务系统生成签名 * @param array $params * @param string $secret * @return string */ public static function createAPISign($params, $secret, $ignore = array()) { foreach ($ignore as $field) { unset($params[$field]); } ksort($params); $sortedReq = $secret; foreach ($params as $key => $val) { $sortedReq .= $key . $val; } $sortedReq .= $secret; LoggerUtil::info($sortedReq); return strtolower(md5($sortedReq)); }
public function run($name, $args) { $lastSeparator = strrpos($name, '_'); $rpcArgs = array('service' => substr($name, 0, $lastSeparator), 'method' => substr($name, $lastSeparator + 1), 'params' => $args); try { LoggerUtil::info('RPC CALL: ' . json_encode($rpcArgs, JSON_UNESCAPED_UNICODE)); $serviceName = $this->getServiceName($rpcArgs['service'], false); $service = new $serviceName(); $methodName = $rpcArgs['method']; if (!method_exists($service, $methodName)) { throw new \Exception(get_lang('METHOD_NOT_FOUND', $methodName)); } $result = call_user_func_array(array($service, $methodName), $rpcArgs['params']); LoggerUtil::info('RPC SUCC: ' . json_encode($result, JSON_UNESCAPED_UNICODE)); return $result; } catch (\Exception $e) { LoggerUtil::error('RPC FAIL: ' . $e->getMessage()); return data_pack(get_code('REMOTE_RPC_FAIL'), $e->getMessage()); } }
private static function logReqInfo() { $data = array('ip' => HttpUtil::getClientIp(), 'host' => isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '', 'uri' => $_SERVER['REQUEST_URI'], 'query' => $_SERVER['QUERY_STRING'], 'method' => $_SERVER['REQUEST_METHOD'], 'referer' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '', 'cookie' => $_COOKIE, 'params' => $_REQUEST); LoggerUtil::info(json_encode($data, JSON_UNESCAPED_UNICODE)); }
private static function registCommonService($di, $config) { $di->setShared('config', $config); $di->setShared('profiler', function () { return new \Phalcon\Db\Profiler(); }); $di->setShared('modelsMetadata', function () use($di, $config) { if ('file' == $config->metaData->saveType) { $savePath = $config->metaData->savePath; if (!file_exists($savePath)) { mkdir($savePath, 0744, true); } $metaData = new \Phalcon\Mvc\Model\Metadata\Files(array('metaDataDir' => $savePath)); return $metaData; } }); $di->setShared('db_myPhalcon_w', function () use($di, $config) { $profiler = $di->getProfiler(); $eventsManager = new \Phalcon\Events\Manager(); $eventsManager->attach('db', function ($event, $connection) use($profiler) { if ($event->getType() == 'beforeQuery') { $profiler->startProfile($connection->getSQLStatement(), $connection->getSqlVariables(), $connection->getSQLBindTypes()); } if ($event->getType() == 'afterQuery') { $profiler->stopProfile(); $profile = $profiler->getLastProfile(); LoggerUtil::info(sprintf('SQL %s , cost time : %s', $profile->getSQLStatement(), $profile->getTotalElapsedSeconds())); } }); $db = new DbAdapter(array('host' => $config->mysql->myPhalcon_w->host, 'username' => $config->mysql->myPhalcon_w->username, 'password' => $config->mysql->myPhalcon_w->password, 'dbname' => $config->mysql->myPhalcon_w->dbname, 'port' => $config->mysql->myPhalcon_w->port)); $db->setEventsManager($eventsManager); return $db; }); $di->setShared('db_myPhalcon_r', function () use($di, $config) { $profiler = $di->getProfiler(); $eventsManager = new \Phalcon\Events\Manager(); $eventsManager->attach('db', function ($event, $connection) use($profiler) { if ($event->getType() == 'beforeQuery') { $profiler->startProfile($connection->getSQLStatement(), $connection->getSqlVariables(), $connection->getSQLBindTypes()); } if ($event->getType() == 'afterQuery') { $profiler->stopProfile(); $profile = $profiler->getLastProfile(); LoggerUtil::info(sprintf('SQL: %s , COST TIME: %s', $profile->getSQLStatement(), $profile->getTotalElapsedSeconds())); } }); $db = new DbAdapter(array('host' => $config->mysql->myPhalcon_r->host, 'username' => $config->mysql->myPhalcon_r->username, 'password' => $config->mysql->myPhalcon_r->password, 'dbname' => $config->mysql->myPhalcon_r->dbname, 'port' => $config->mysql->myPhalcon_r->port)); $db->setEventsManager($eventsManager); return $db; }); $di->setShared('redisCache', function () use($di, $config) { require VENDOR_PATH . '/predis/Autoloader.php'; \Predis\Autoloader::register(); $host = $config->redisCache->host; $port = $config->redisCache->port; return new \Predis\Client("tcp://{$host}:{$port}"); }); $di->setShared('curl', function () use($di, $config) { require VENDOR_PATH . '/Curl/Autoloader.php'; \Curl\Autoloader::register(); return new \Curl\Curl(); }); $di->setShared('image', function () use($di, $config) { require VENDOR_PATH . '/Image/Autoloader.php'; \Image\Autoloader::register(); return new \Image\Image(\Image\Image::IMAGE_IMAGICK); }); }