You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
99
thinkphp/library/think/controller/Rest.php
Executable file
99
thinkphp/library/think/controller/Rest.php
Executable file
@ -0,0 +1,99 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2017 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: liu21st <liu21st@gmail.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace think\controller;
|
||||
|
||||
use think\App;
|
||||
use think\Request;
|
||||
use think\Response;
|
||||
|
||||
abstract class Rest
|
||||
{
|
||||
|
||||
protected $method; // 当前请求类型
|
||||
protected $type; // 当前资源类型
|
||||
// 输出类型
|
||||
protected $restMethodList = 'get|post|put|delete';
|
||||
protected $restDefaultMethod = 'get';
|
||||
protected $restTypeList = 'html|xml|json|rss';
|
||||
protected $restDefaultType = 'html';
|
||||
protected $restOutputType = [ // REST允许输出的资源类型列表
|
||||
'xml' => 'application/xml',
|
||||
'json' => 'application/json',
|
||||
'html' => 'text/html',
|
||||
];
|
||||
|
||||
/**
|
||||
* 构造函数 取得模板对象实例
|
||||
* @access public
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// 资源类型检测
|
||||
$request = Request::instance();
|
||||
$ext = $request->ext();
|
||||
if ('' == $ext) {
|
||||
// 自动检测资源类型
|
||||
$this->type = $request->type();
|
||||
} elseif (!preg_match('/(' . $this->restTypeList . ')$/i', $ext)) {
|
||||
// 资源类型非法 则用默认资源类型访问
|
||||
$this->type = $this->restDefaultType;
|
||||
} else {
|
||||
$this->type = $ext;
|
||||
}
|
||||
// 请求方式检测
|
||||
$method = strtolower($request->method());
|
||||
if (!preg_match('/(' . $this->restMethodList . ')$/i', $method)) {
|
||||
// 请求方式非法 则用默认请求方法
|
||||
$method = $this->restDefaultMethod;
|
||||
}
|
||||
$this->method = $method;
|
||||
}
|
||||
|
||||
/**
|
||||
* REST 调用
|
||||
* @access public
|
||||
* @param string $method 方法名
|
||||
* @return mixed
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function _empty($method)
|
||||
{
|
||||
if (method_exists($this, $method . '_' . $this->method . '_' . $this->type)) {
|
||||
// RESTFul方法支持
|
||||
$fun = $method . '_' . $this->method . '_' . $this->type;
|
||||
} elseif ($this->method == $this->restDefaultMethod && method_exists($this, $method . '_' . $this->type)) {
|
||||
$fun = $method . '_' . $this->type;
|
||||
} elseif ($this->type == $this->restDefaultType && method_exists($this, $method . '_' . $this->method)) {
|
||||
$fun = $method . '_' . $this->method;
|
||||
}
|
||||
if (isset($fun)) {
|
||||
return App::invokeMethod([$this, $fun]);
|
||||
} else {
|
||||
// 抛出异常
|
||||
throw new \Exception('error action :' . $method);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 输出返回数据
|
||||
* @access protected
|
||||
* @param mixed $data 要返回的数据
|
||||
* @param String $type 返回类型 JSON XML
|
||||
* @param integer $code HTTP状态码
|
||||
* @return Response
|
||||
*/
|
||||
protected function response($data, $type = 'json', $code = 200)
|
||||
{
|
||||
return Response::create($data, $type)->code($code);
|
||||
}
|
||||
|
||||
}
|
3
thinkphp/library/think/controller/Test.php
Executable file
3
thinkphp/library/think/controller/Test.php
Executable file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
header("Content-type: text/html; charset=utf-8");
|
||||
echo base64_decode("KiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogPGJyLz4qIFdTVE1hcnTlpJrnlKjmiLfllYbln44NCiA8YnIvPiog54mI5p2D5omA5pyJIDIwMTYtMjA2NiDlub/lt57llYbmt5jkv6Hmga/np5HmioDmnInpmZDlhazlj7jvvIzlubbkv53nlZnmiYDmnInmnYPliKnjgIINCiA8YnIvPiog5a6Y572R5Zyw5Z2AOmh0dHA6Ly93d3cud3N0bWFydC5uZXQNCiA8YnIvPiog5Lqk5rWB56S+5Yy6Omh0dHA6Ly9iYnMuc2hhbmd0YW9zb2Z0LmNvbQ0KIDxici8+KiDogZTns7tRUToxNTMyODk5NzANCiA8YnIvPiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIDxici8+KiDov5nkuI3mmK/kuIDkuKroh6rnlLHova/ku7bvvIHmnKrnu4/mnKzlhazlj7jmjojmnYPmgqjlj6rog73lnKjkuI3nlKjkuo7llYbkuJrnm67nmoTnmoTliY3mj5DkuIvlr7nnqIvluo/ku6PnoIHov5vooYzkv67mlLnlkozkvb/nlKjvvJsNCiA8YnIvPiog5LiN5YWB6K645a+556iL5bqP5Luj56CB5Lul5Lu75L2V5b2i5byP5Lu75L2V55uu55qE55qE5YaN5Y+R5biD44CCDQogPGJyLz4qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0=");
|
51
thinkphp/library/think/controller/Yar.php
Executable file
51
thinkphp/library/think/controller/Yar.php
Executable file
@ -0,0 +1,51 @@
|
||||
<?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