mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-08 23:52:49 +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 $restDefaultMethod = 'get';
|
||||||
protected $restTypeList = 'html|xml|json|rss';
|
protected $restTypeList = 'html|xml|json|rss';
|
||||||
protected $restDefaultType = 'html';
|
protected $restDefaultType = 'html';
|
||||||
protected $restOutputType = [// REST允许输出的资源类型列表
|
protected $restOutputType = [ // REST允许输出的资源类型列表
|
||||||
'xml' => 'application/xml',
|
'xml' => 'application/xml',
|
||||||
'json' => 'application/json',
|
'json' => 'application/json',
|
||||||
'html' => 'text/html',
|
'html' => 'text/html',
|
||||||
@@ -78,7 +78,7 @@ abstract class rest
|
|||||||
$this->$fun();
|
$this->$fun();
|
||||||
} else {
|
} 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