コード例 #1
0
ファイル: Default.php プロジェクト: BGCX261/zr4u-svn-to-git
 /**
  * 获取路由实例管理实例
  */
 protected function getServRouteInstance()
 {
     if ($this->servRouteInstance === NULL) {
         $this->servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance());
     }
     return $this->servRouteInstance;
 }
コード例 #2
0
 /**
  * 获取路由实例管理实例
  */
 private function get_serv_route_instance()
 {
     if ($this->serv_route_instance === NULL) {
         $this->serv_route_instance = ServRouteInstance::getInstance(ServRouteConfig::getInstance());
     }
     return $this->serv_route_instance;
 }
コード例 #3
0
 public static function getInstance($configObject = NULL)
 {
     if (self::$instance === null) {
         //self::$instance = new InstanceService($configObject);
         $classname = __CLASS__;
         self::$instance = new $classname($configObject);
     }
     return self::$instance;
 }
コード例 #4
0
ファイル: promotion.php プロジェクト: RenzcPHP/3dproduct
 /**
  * 清除打折缓存
  * 
  * @param int $id   
  * @return Boolean
  */
 public static function delete_memcache($id)
 {
     $route = 'promotion';
     $route_key = $id . '_' . $route;
     $line_key = array('id' => $id);
     $cacheInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance())->getMemInstance($route, $line_key)->getInstance();
     $cacheInstance->delete($route_key);
     return TRUE;
 }
コード例 #5
0
ファイル: DaoDb.php プロジェクト: BGCX261/zr4u-svn-to-git
 function __initialize($dbInstance = NULL, $idSet = NULL)
 {
     if ($dbInstance !== NULL) {
         $this->dbInstance = $dbInstance;
     } else {
         if ($this->dbInstance === NULL) {
             $this->servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance());
             if (empty($idSet)) {
                 $this->dbInstance = $this->servRouteInstance->getDbInstance($this->objectName)->getInstance();
             } else {
                 if (!is_array($idSet)) {
                     $routeSet = array('id' => $idSet);
                 } else {
                     $routeSet = $idSet;
                 }
                 $this->dbInstance = $this->servRouteInstance->getDbInstance($this->objectName, $routeSet)->getInstance();
             }
             //$this->dbInstance = $this->servRouteInstance->getDbInstance()->getInstance();
         }
     }
     // Load field information
     $this->reloadFields();
 }
コード例 #6
0
ファイル: develop.php プロジェクト: BGCX261/zr4u-svn-to-git
 public function sandbox()
 {
     $returnStruct = array('status' => 0, 'code' => 501, 'msg' => _('Not Implemented'), 'content' => array());
     try {
         //* 初始化返回数据 */
         $returnStatus = 1;
         $returnCode = 200;
         $returnMessage = '';
         $returnData = array();
         //* 收集请求数据 ==根据业务逻辑定制== */
         $getData = $this->input->get();
         $postData = $this->input->post();
         empty($getData) && ($getData = array());
         empty($postData) && ($postData = array());
         $requestData = array_merge($getData, $postData);
         //* 实现功能后屏蔽此异常抛出 */
         //throw new MyRuntimeException(_('Not Implemented'),501);
         //* 权限验证,数据验证,逻辑验证 ==根据业务逻辑定制== */
         //            if(util::isAccess(array(Logon::$MGR_ROLE_LABEL_SYS_ADMIN,), array(Logon::$MGR_ROLE_LABEL_DENIED,Logon::$MGR_ROLE_LABEL_GUEST), $this->getMgrRole())==FALSE){
         //                throw new MyRuntimeException(_('Access Denied'),403);
         //            }
         //* 权限验证 ==根据业务逻辑定制== */
         //* 数据验证 ==根据业务逻辑定制== */
         //* 逻辑验证 ==根据业务逻辑定制== */
         // 调用底层服务
         // 执行业务逻辑
         !isset($servRouteInstance) && ($servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance()));
         //$seqService = Seq_Service::getInstance($servRouteInstance);
         //$tempId = $seqService->currentSeq('Temp');
         //print("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($tempId,TRUE)."\n</pre></div>");
         //exit;
         //            $myTemp = Temp_Service::getInstance($servRouteInstance);
         ////            $myt1 = Temp_Service::factory($servRouteInstance);
         ////            $myt2 = Temp_Service::factory($servRouteInstance);
         //            $reqObj = array('name'=>'abc'.util::reRandStr(3),'val'=>'123abc');
         //             $retId = $myTemp->add($reqObj);
         //             print("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($retId,TRUE)."\n</pre></div>");
         //
         //             $retObj = $myTemp->get($retId);
         //             print("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($retObj,TRUE)."\n</pre></div>");
         //             exit;
         //            $tobj1 = $myTemp->get(1);
         //            $tobj2 = $myt1->get(2);
         //            $tobj3 = $myt2->get(1);
         //            print("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($tobj1,TRUE)."\n</pre></div>");
         //            print("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($tobj2,TRUE)."\n</pre></div>");
         //            print("<div id=\"do_debug\" style=\"clear:both;display:;\"><pre>\n".var_export($tobj3,TRUE)."\n</pre></div>");
         //            exit;
         //            /* == thrift 调用样例 Start == */
         //                // thrift 相关调用
         //                require_once $GLOBALS['THRIFT_ROOT'].'/Thrift.php';
         //                require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
         //                require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php';
         //                require_once $GLOBALS['THRIFT_ROOT'].'/transport/THttpClient.php';
         //                require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php';
         //                // thrift 应用接口相关调用接口类定义库
         //                $GEN_DIR = $GLOBALS['THRIFT_ROOT'].'/packages/zr4u';
         //                require_once $GEN_DIR.'/MyappInterface.php';
         //                require_once $GEN_DIR.'/zr4u_constants.php';
         //                require_once $GEN_DIR.'/zr4u_types.php';
         //                try {
         //                  // thrift 服务调用
         //                  $socket = new TSocket(Lemon::config('thrift.default.Host'), Lemon::config('thrift.default.Port'));
         //                  $transport = new TBufferedTransport($socket, 1024, 1024);
         //                  $protocol = new TBinaryProtocol($transport);
         //                  $client = new ExpoInterfaceClient($protocol);
         //                  $transport->open();
         //                  //接口业务逻辑
         //                  $serviceVersion = $client->getVER();
         //
         //                  //通讯关闭
         //                  $transport->close();
         //                } catch (TException $ex) {
         //                    //print 'TException: '.$tx->getMessage()."\n";
         //                    throw new MyRuntimeException(_('Server Communication Error'),500);
         //                }
         //            $returnData['serviceVersion']=$serviceVersion;
         //
         //            /* == thrift 调用样例 End == */
         //            /* == FS 调用样例 Start == */
         //            // 调用路由实例
         //            $servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance());
         //
         //            // 当前应用模块
         //            $currentModuleName = 'attach';
         //            // 收集数据特征
         //            $testUserId = intval(date('YWHi',strtotime('2010-04-06 11:11:00')));
         //            $crts = time();
         //            //获取对应服务的路由实例
         //            $fsInst_attach = $servRouteInstance->getFsInstance($currentModuleName,array('userId'=>$testUserId,'crts'=>$crts))->getInstance();
         //
         //            // 调用对应服务的对应调用方法使用服务
         //            $fileKey = 'myfile_'.date('YmdHi',strtotime('2010-04-06 11:11:00'));
         //            $putFileContent = md5(uniqid(rand(), true));
         //
         //            $saveOk = $fsInst_attach->putFileData($fileKey,$putFileContent);
         //            $getFileContent = $fsInst_attach->getFileData($fileKey);
         //
         //            $returnData['fileKey'] = $fileKey;
         //            $returnData['saveOK'] = $saveOk?'Yes':'No';
         //            $returnData['putContent'] = $putFileContent;
         //            $returnData['getContent'] = $getFileContent;
         //            $returnData['match'] = $getFileContent==$putFileContent?'Yes':'No';
         //
         //            /* == FS 调用样例 End == */
         //            /* == Db 调用样例 Start == */
         //            // 调用路由实例
         //            !isset($servRouteInstance) && $servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance());
         //            //获取对应服务的路由实例
         //            !isset($dbInst_default) && $dbInst_default = $servRouteInstance->getDbInstance()->getInstance();
         //            $results = $dbInst_default->get_results("SHOW COLUMNS FROM Manager", OBJECT);
         //            $returnData['dbresult'] = $results;
         //            /* == Db 调用样例 End == */
         $returnMessage = 'Test Ok';
         //* 补充&修改返回结构体 */
         $returnStruct['status'] = $returnStatus;
         $returnStruct['code'] = $returnCode;
         $returnStruct['msg'] = $returnMessage;
         $returnStruct['content'] = $returnData;
         //* 请求类型 */
         if ($this->isAjaxRequest()) {
             // ajax 请求
             // json 输出
             $this->template->content = $returnStruct;
         } else {
             // html 输出
             //* 模板输出 */
             $this->template->returnStruct = $returnStruct;
             $content = new View($this->packageName . '/' . $this->className . '/' . __FUNCTION__);
             //* 变量绑定 */
             $this->template->title = Lemon::config('site.name');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->requestData = $requestData;
             //* 返回结构体绑定 */
             $this->template->content->returnStruct = $returnStruct;
             //:: 当前应用专用数据
             $this->template->content->title = Lemon::config('site.name');
         }
         // end of request type determine
     } catch (MyRuntimeException $ex) {
         $returnStruct['status'] = 0;
         $returnStruct['code'] = $ex->getCode();
         $returnStruct['msg'] = $ex->getMessage();
         //TODO 异常处理
         //throw $ex;
         if ($this->isAjaxRequest()) {
             $this->template->content = $returnStruct;
         } else {
             $this->template->returnStruct = $returnStruct;
             $content = new View('info');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->requestData = $requestData;
             //* 返回结构体绑定 */
             $this->template->content->returnStruct = $returnStruct;
         }
     }
 }
コード例 #7
0
ファイル: phprpc.php プロジェクト: BGCX261/zr4u-svn-to-git
 /**
  * rpc服务
  */
 public function attachment()
 {
     $returnStruct = array('status' => 0, 'code' => 501, 'msg' => _('Not Implemented'), 'content' => array());
     try {
         //* 初始化返回数据 */
         $returnStatus = 1;
         $returnCode = 200;
         $returnMessage = '';
         $returnData = array();
         //* 收集请求数据 ==根据业务逻辑定制== */
         $requestData = $this->input->get();
         //* 实现功能后屏蔽此异常抛出 */
         //throw new MyRuntimeException(_('Not Implemented'),501);
         //* 权限验证,数据验证,逻辑验证 ==根据业务逻辑定制== */
         //if(util::isAccess(array(Logon::$MGR_ROLE_LABEL_SYS_ADMIN,), array(Logon::$USER_ROLE_LABEL_DENIED,Logon::$USER_ROLE_LABEL_GUEST), $this->getUserRoleLabel())==FALSE){
         //    throw new MyRuntimeException(_('Access Denied'),403);
         //}
         if (util::isAccess('*', array(Logon::$USER_ROLE_LABEL_DENIED), $this->getUserRoleLabel()) == FALSE) {
             throw new MyRuntimeException(_('Access Denied'), 403);
         }
         //* 权限验证 ==根据业务逻辑定制== */
         //* 数据验证 ==根据业务逻辑定制== */
         //* 逻辑验证 ==根据业务逻辑定制== */
         // 调用底层服务
         !isset($servRouteInstance) && ($servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance()));
         // 执行业务逻辑
         require_once Lemon::find_file('vendor', 'phprpc/phprpc_server', TRUE);
         $server = new PHPRPC_Server();
         $server->add(array('phprpc_addAttachmentFileData', 'phprpc_getAttachmentDataById', 'phprpc_getStoreDataByStoreId', 'phprpc_getStoreDataByAttachmentId', 'phprpc_removeAttachmentDataByAttachmentId', 'phprpc_getStoreInfoByStoreId'), Attachment_Service::getInstance());
         $server->start();
         exit;
         throw new MyRuntimeException(_('Internal Error'), 500);
         //* 补充&修改返回结构体 */
         $returnStruct['status'] = $returnStatus;
         $returnStruct['code'] = $returnCode;
         $returnStruct['msg'] = $returnMessage;
         $returnStruct['content'] = $returnData;
         //* 请求类型 */
         if ($this->isAjaxRequest()) {
             // ajax 请求
             // json 输出
             $this->template->content = $returnStruct;
         } else {
             // html 输出
             //* 模板输出 */
             $this->template->returnStruct = $returnStruct;
             $content = new View('info');
             //* 变量绑定 */
             $this->template->title = Lemon::config('site.name');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->requestData = $requestData;
             //* 返回结构体绑定 */
             $this->template->content->returnStruct = $returnStruct;
             //:: 当前应用专用数据
             $this->template->content->title = Lemon::config('site.name');
         }
         // end of request type determine
     } catch (MyRuntimeException $ex) {
         $returnStruct['status'] = 0;
         $returnStruct['code'] = $ex->getCode();
         $returnStruct['msg'] = $ex->getMessage();
         //TODO 异常处理
         //throw $ex;
         if ($this->isAjaxRequest()) {
             $this->template->content = $returnStruct;
         } else {
             $this->template->returnStruct = $returnStruct;
             $content = new View('info');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->requestData = $requestData;
             //* 返回结构体绑定 */
             $this->template->content->returnStruct = $returnStruct;
         }
     }
 }
コード例 #8
0
 /**
  * 删除数据 action
  */
 public function delete()
 {
     $returnStruct = array('status' => 0, 'code' => 501, 'msg' => _('Not Implemented'), 'content' => array());
     try {
         // 是否调用本地服务
         $useLocalService = TRUE;
         //$useLocalService = FALSE;
         //* 初始化返回数据 */
         $returnStatus = 1;
         $returnCode = 200;
         $returnMessage = '';
         $returnData = array();
         //* 收集请求数据 ==根据业务逻辑定制== */
         $requestData = $this->input->get();
         //* 实现功能后屏蔽此异常抛出 */
         //throw new MyRuntimeException(_('Not Implemented'),501);
         //* 权限验证,数据验证,逻辑验证 ==根据业务逻辑定制== */
         //if(util::isAccess(array(Logon::$MGR_ROLE_LABEL_SYS_ADMIN,), array(Logon::$USER_ROLE_LABEL_DENIED,Logon::$USER_ROLE_LABEL_GUEST), $this->getUserRoleLabel())==FALSE){
         //    throw new MyRuntimeException(_('Access Denied'),403);
         //}
         if (util::isAccess('*', array(Logon::$USER_ROLE_LABEL_DENIED), $this->getUserRoleLabel()) == FALSE) {
             throw new MyRuntimeException(_('Access Denied'), 403);
         }
         //* 权限验证 ==根据业务逻辑定制== */
         //* 数据验证 ==根据业务逻辑定制== */
         if (!isset($requestData['id']) || empty($requestData['id']) || !is_numeric($requestData['id'])) {
             throw new MyRuntimeException(_('Bad Request,id required'), 400);
         }
         //* 逻辑验证 ==根据业务逻辑定制== */
         // 调用底层服务
         !isset($servRouteInstance) && ($servRouteInstance = ServRouteInstance::getInstance(ServRouteConfig::getInstance()));
         // 执行业务逻辑
         // TODO 根据数据特征定制对应的服务实例
         if ($useLocalService == TRUE) {
             !isset($attachmentService) && ($attachmentService = Attachment_Service::getInstance($servRouteInstance));
         } else {
             require_once Lemon::find_file('vendor', 'phprpc/phprpc_client', TRUE);
             !isset($attachmentService) && ($attachmentService = new PHPRPC_Client(Lemon::config('phprpc.remote.Attachment.host')));
             !isset($phprpcApiKey) && ($phprpcApiKey = Lemon::config('phprpc.remote.Attachment.apiKey'));
         }
         try {
             if ($useLocalService == TRUE) {
                 $attachmentService->removeAttachmentDataByAttachmentId($requestData['id']);
             } else {
                 $args = array($requestData['id']);
                 $sign = md5(json_encode($args) . $phprpcApiKey);
                 $attachmentService->phprpc_removeAttachmentDataByAttachmentId($requestData['id'], $sign);
             }
         } catch (MyRuntimeException $ex) {
             //* ==根据业务逻辑定制== */
             //FIXME 根据service层的异常做一些对应处理并抛出用户友好的异常Message
             throw $ex;
         }
         $returnMessage = _('Sucess');
         //* 补充&修改返回结构体 */
         $returnStruct['status'] = $returnStatus;
         $returnStruct['code'] = $returnCode;
         $returnStruct['msg'] = $returnMessage;
         $returnStruct['content'] = $returnData;
         //* 请求类型 */
         if ($this->isAjaxRequest()) {
             // ajax 请求
             // json 输出
             $this->template->content = $returnStruct;
         } else {
             // html 输出
             //* 模板输出 */
             $this->template->returnStruct = $returnStruct;
             $content = new View('info');
             //* 变量绑定 */
             $this->template->title = Lemon::config('site.name');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->requestData = $requestData;
             //* 返回结构体绑定 */
             $this->template->content->returnStruct = $returnStruct;
             //:: 当前应用专用数据
             $this->template->content->title = Lemon::config('site.name');
         }
         // end of request type determine
     } catch (MyRuntimeException $ex) {
         $returnStruct['status'] = 0;
         $returnStruct['code'] = $ex->getCode();
         $returnStruct['msg'] = $ex->getMessage();
         //TODO 异常处理
         //throw $ex;
         if ($this->isAjaxRequest()) {
             $this->template->content = $returnStruct;
         } else {
             $this->template->returnStruct = $returnStruct;
             $content = new View('info');
             $this->template->content = $content;
             //* 请求结构数据绑定 */
             $this->template->content->requestData = $requestData;
             //* 返回结构体绑定 */
             $this->template->content->returnStruct = $returnStruct;
         }
     }
 }
コード例 #9
0
ファイル: Mydoc.php プロジェクト: RenzcPHP/3dproduct
 public static function clear_uris()
 {
     return;
     $serv_route_instance = ServRouteInstance::getInstance(ServRouteConfig::getInstance());
     $cacheInstance = $serv_route_instance->getMemInstance('doc_uris', array('id' => $site_id))->getInstance();
     $route_key = 'doc_uris_';
     $cacheInstance->delete($route_key, 0);
 }