diff --git a/library/think/controller/amf.php b/library/think/controller/amf.php deleted file mode 100644 index bde1cba9..00000000 --- a/library/think/controller/amf.php +++ /dev/null @@ -1,32 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\controller; - -abstract class amf -{ - - /** - * PHPRpc控制器架构函数 - * @access public - */ - public function __construct() - { - //导入类库 - think\loader::import('vendor.zend.amf.server'); - //实例化AMF - $server = new \Zend_Amf_Server(); - $server->setClass($this); - echo $server->handle(); - return; - } - -} diff --git a/library/think/controller/hprose.php b/library/think/controller/hprose.php new file mode 100644 index 00000000..d86dd03c --- /dev/null +++ b/library/think/controller/hprose.php @@ -0,0 +1,67 @@ + +// +---------------------------------------------------------------------- +namespace think\controller; + +/** + * ThinkPHP Hprose控制器类 + */ +abstract class Hprose +{ + + protected $allowMethodList = ''; + protected $crossDomain = false; + protected $P3P = false; + protected $get = true; + protected $debug = false; + + /** + * 架构函数 + * @access public + */ + public function __construct() + { + //控制器初始化 + if (method_exists($this, '_initialize')) { + $this->_initialize(); + } + + //导入类库 + think\Loader::import('vendor.Hprose.HproseHttpServer'); + //实例化HproseHttpServer + $server = new \HproseHttpServer(); + if ($this->allowMethodList) { + $methods = $this->allowMethodList; + } else { + $methods = get_class_methods($this); + $methods = array_diff($methods, array('__construct', '__call', '_initialize')); + } + $server->addMethods($methods, $this); + if (APP_DEBUG || $this->debug) { + $server->setDebugEnabled(true); + } + // Hprose设置 + $server->setCrossDomainEnabled($this->crossDomain); + $server->setP3PEnabled($this->P3P); + $server->setGetEnabled($this->get); + // 启动server + $server->start(); + } + + /** + * 魔术方法 有不存在的操作的时候执行 + * @access public + * @param string $method 方法名 + * @param array $args 参数 + * @return mixed + */ + public function __call($method, $args) + {} +} diff --git a/library/think/controller/jsonrpc.php b/library/think/controller/jsonrpc.php new file mode 100644 index 00000000..d8713708 --- /dev/null +++ b/library/think/controller/jsonrpc.php @@ -0,0 +1,45 @@ + +// +---------------------------------------------------------------------- +namespace think\controller; + +/** + * ThinkPHP JsonRPC控制器类 + */ +abstract class Jsonrpc +{ + + /** + * 架构函数 + * @access public + */ + public function __construct() + { + //控制器初始化 + if (method_exists($this, '_initialize')) { + $this->_initialize(); + } + + //导入类库 + think\Loader::import('vendor.jsonrpc.jsonRPCServer'); + // 启动server + \jsonRPCServer::handle($this); + } + + /** + * 魔术方法 有不存在的操作的时候执行 + * @access public + * @param string $method 方法名 + * @param array $args 参数 + * @return mixed + */ + public function __call($method, $args) + {} +} diff --git a/library/think/controller/phprpc.php b/library/think/controller/phprpc.php deleted file mode 100644 index 9d07bd55..00000000 --- a/library/think/controller/phprpc.php +++ /dev/null @@ -1,36 +0,0 @@ - -// +---------------------------------------------------------------------- - -namespace think\controller; - -abstract class phprpc -{ - /** - * PHPRpc控制器架构函数 - * @access public - */ - public function __construct() - { - //导入类库 - think\loader::import('vendor.phprpc.phprpc_server'); - //实例化phprpc - $server = new \PHPRPC_Server(); - $server->add($this); - if (APP_DEBUG) { - $server->setDebugMode(true); - } - $server->setEnableGZIP(true); - $server->start(); - //C('PHPRPC_COMMENT',$server->comment()); - echo $server->comment(); - } - -} diff --git a/library/think/controller/rest.php b/library/think/controller/rest.php index 8ffca2ee..afb0d53d 100644 --- a/library/think/controller/rest.php +++ b/library/think/controller/rest.php @@ -23,7 +23,7 @@ abstract class rest protected $restDefaultMethod = 'get'; protected $restTypeList = 'html|xml|json|rss'; protected $restDefaultType = 'html'; - protected $restOutputType = [// REST允许输出的资源类型列表 + protected $restOutputType = [ // REST允许输出的资源类型列表 'xml' => 'application/xml', 'json' => 'application/json', 'html' => 'text/html', @@ -78,7 +78,7 @@ abstract class rest $this->$fun(); } else { // 抛出异常 - throw new \think\Exception(\think\Lang::get('_ERROR_ACTION_:') . ACTION_NAME); + throw new \Exception('error action :' . ACTION_NAME); } } diff --git a/library/think/controller/rpc.php b/library/think/controller/rpc.php new file mode 100644 index 00000000..0c87f08a --- /dev/null +++ b/library/think/controller/rpc.php @@ -0,0 +1,62 @@ + +// +---------------------------------------------------------------------- +namespace think\controller; + +/** + * ThinkPHP RPC控制器类 + */ +abstract class Rpc +{ + + protected $allowMethodList = ''; + protected $debug = false; + + /** + * 架构函数 + * @access public + */ + public function __construct() + { + //控制器初始化 + if (method_exists($this, '_initialize')) { + $this->_initialize(); + } + + //导入类库 + think\Loader::import('vendor.phprpc.phprpc_server'); + //实例化phprpc + $server = new \PHPRPC_Server(); + if ($this->allowMethodList) { + $methods = $this->allowMethodList; + } else { + $methods = get_class_methods($this); + $methods = array_diff($methods, array('__construct', '__call', '_initialize')); + } + $server->add($methods, $this); + + if (APP_DEBUG || $this->debug) { + $server->setDebugMode(true); + } + $server->setEnableGZIP(true); + $server->start(); + echo $server->comment(); + } + + /** + * 魔术方法 有不存在的操作的时候执行 + * @access public + * @param string $method 方法名 + * @param array $args 参数 + * @return mixed + */ + public function __call($method, $args) + {} +} diff --git a/library/think/controller/yar.php b/library/think/controller/yar.php new file mode 100644 index 00000000..05627c75 --- /dev/null +++ b/library/think/controller/yar.php @@ -0,0 +1,50 @@ + +// +---------------------------------------------------------------------- +namespace think\controller; + +/** + * ThinkPHP Yar控制器类 + */ +abstract class Yar +{ + + /** + * 架构函数 + * @access public + */ + public function __construct() + { + //控制器初始化 + if (method_exists($this, '_initialize')) { + $this->_initialize(); + } + + //判断扩展是否存在 + if (!extension_loaded('yar')) { + throw new Exception('not support yar'); + } + + //实例化Yar_Server + $server = new \Yar_Server($this); + // 启动server + $server->handle(); + } + + /** + * 魔术方法 有不存在的操作的时候执行 + * @access public + * @param string $method 方法名 + * @param array $args 参数 + * @return mixed + */ + public function __call($method, $args) + {} +}