大家好。如果不与HTTP请求进行交互,则无法完成API的使用。有人不理会并使用全局数组$ _GET,$ _POST和$ _REQUEST。坦白说,我是自己做的,但是不久前,我为需要某种包装以便于使用而感到困惑。也许已经有这样的库,但是除了Bitrix API(也许我看起来很糟糕)之外,我还没有找到它们,因此我决定编写自己的库。此外,您应该同意在使用代码时使用您的库会更加愉快。到目前为止,该库可以使用GET和POST方法,以及从php:// input获得的json构造。他还知道如何对https进行检查并获取标头。连接和通话
要连接库,请使用Composer:composer require ramapriya/http-request
require __DIR__ . '/vendor/autoload.php';
use Ramapriya\Request\Request;
方法验证
现在您可以使用该库了。例如,如果要查找请求的类型,请调用GetRequestMethod()方法:$method = Request::GetRequestMethod();
switch($method) {
case 'GET':
break;
case 'POST':
break;
}
但是,通常方法的类型是事先已知的,因此为了不创建其他变量,使用分别检查get和post的方法-isGet()和isPost()就足够了:if(Request::isPost() !== false) {
} else if(Request::isGet() !== false) {
}
接收钥匙
碰巧您需要获取查询参数的列表(不是值,而是键本身),对于Get和Post也有两种方法:$GetParams = Request::GetParams();
if(in_array($needle, $GetParams)) {
}
$postParams = Request::PostParams();
if(in_array($needle, $postParams)) {
}
获得价值
当然,还有一些获取参数值的方法-Get()和Post()。最有趣的是,您既可以获取单个参数,也可以获取整个数组(顺便说一句,它转换为对象-不要问为什么,我只喜欢使用对象):if(!empty(Request::Get('user'))) {
$user = Request::Get('user');
}
$request = Request::Post();
if(Request::isPost() && !empty($request)) {
}
原始请求(php://输入)
我们还应该详细介绍使用php://输入的方法。此isRaw() -检查原始请求,原始() ,它返回JSON字符串转换为对象,和RawParams() ,它返回请求密钥。我记得当我使用Sendpulse API时,我不得不写这样的东西:$rawRequest = file_get_contents('php://input');
$request = json_decode($rawRequest);
if(!empty($request)) {
}
当然,可以省去一个变量。$request = json_decode(file_get_contents('php://input'));
但是您必须承认,它看起来相当混乱。使用Raw()和isRaw()方法,该代码已经带来了更多的美感:if(Request::isRaw() === true) {
$request = Request::Raw();
}
使用标题
库中还有几种使用标头的方法:GetAllHeaders() -获取所有标头。$headers = Request::GetAllHeaders();
GetHostName() -获取主机名$domain = Request::GetHostName();
isHttps() -检查httpsif(Request::isHttps() !== true) {
die("Application works only with HTTPS!");
}
GetUserAgent() -获取用户代理。这对某人可能很重要。$userAgent = Request::GetUserAgent();
该库将得到补充和修改。像往常一样,在github上的源代码谢谢您的关注。