mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 20:52:48 +08:00
增加控制器扩展
This commit is contained in:
@@ -1,32 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2015 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
67
library/think/controller/hprose.php
Normal file
67
library/think/controller/hprose.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
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)
|
||||
{}
|
||||
}
|
||||
45
library/think/controller/jsonrpc.php
Normal file
45
library/think/controller/jsonrpc.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
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)
|
||||
{}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2015 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
62
library/think/controller/rpc.php
Normal file
62
library/think/controller/rpc.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
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)
|
||||
{}
|
||||
}
|
||||
50
library/think/controller/yar.php
Normal file
50
library/think/controller/yar.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
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)
|
||||
{}
|
||||
}
|
||||
Reference in New Issue
Block a user