Exemplo n.º 1
0
 public function testResponseWithBadRequest()
 {
     $data = array('service' => 'AnotherImpl');
     DI()->request = new PhalApi_Request($data);
     DI()->response = 'PhalApi_Response_Json_Mock';
     $phalApi = new PhalApi();
     $rs = $phalApi->response();
     $rs->output();
     $this->expectOutputRegex('/"ret":400/');
 }
Exemplo n.º 2
0
 protected function youGo($service, $params)
 {
     $params['service'] = $service;
     DI()->request = new PhalApi_Request($params);
     DI()->response = new PhalApi_Response_Json();
     $phalapi = new PhalApi();
     $rs = $phalapi->response();
     $apiRs = $rs->getResult();
     if ($apiRs['ret'] != 200) {
         DI()->logger->debug('task local go fail', array('servcie' => $service, 'params' => $params, 'rs' => $apiRs));
         return FALSE;
     }
     return TRUE;
 }
Exemplo n.º 3
0
<?php

/**
 * Demo 统一入口
 */
require_once dirname(__FILE__) . '/../init.php';
//装载你的接口
DI()->loader->addDirs('Demo');
/** ---------------- 响应接口请求 ---------------- **/
$api = new PhalApi();
$rs = $api->response();
$rs->output();
Exemplo n.º 4
0
 /**
  * 启动计划任务,支持异步处理
  */
 public function runTask()
 {
     $oldErrorHandler = set_error_handler(array(__CLASS__, 'myErrorHandler'));
     $config = DI()->config->get('app.Swoole.task');
     $ip = isset($config['ip']) ? $config['ip'] : '127.0.0.1';
     $port = isset($config['port']) ? $config['port'] : 9502;
     $workerNum = isset($config['worker_num']) ? $config['worker_num'] : 4;
     $serv = new swoole_server($ip, $port);
     $serv->set(array('task_worker_num' => $workerNum));
     $serv->on('Receive', function ($serv, $fd, $fromId, $data) {
         $taskId = $serv->task($data);
         DI()->logger->debug("asynctask({$taskId}) dispath in swoole", $data);
     });
     $serv->on('Task', function ($serv, $taskId, $fromId, $data) {
         DI()->logger->debug("asynctask({$taskId}) start in swoole", $data);
         $params = json_decode($data, TRUE);
         if (!is_array($params)) {
             $params = array();
         }
         DI()->request = new PhalApi_Request($params);
         DI()->response = new Swoole_Response_Json();
         try {
             $phalapi = new PhalApi();
             $rs = $phalapi->response();
             $apiRs = $rs->getResult();
             $serv->finish($rs->formatResult($apiRs));
         } catch (Exception $ex) {
             echo $ex->getTraceAsString();
             DI()->logger->error("asynctask({$taskId}) exception in swoole", $ex->getMessage());
             $serv->finish("Exception: " . $ex->getMessage());
             //TODO 通知管理员
         }
         if (DI()->notorm) {
             DI()->notorm->disconnect();
         }
     });
     $serv->on('Finish', function ($serv, $taskId, $data) {
         DI()->logger->debug("asynctask({$taskId}) finish in swoole", $data);
         $serv->close($taskId);
     });
     $serv->start();
 }