تحية للجميع.لا يكتمل العمل مع واجهة برمجة التطبيقات بدون التفاعل مع طلبات HTTP. شخص ما لا يكلف نفسه عناء ويستخدم المصفوفات العمومية $ _GET و $ _POST و $ _REQUEST. بصراحة ، لقد فعلت ذلك بنفسي ، ولكن منذ وقت ليس ببعيد كنت في حيرة من التفكير في الحاجة إلى نوع من الغلاف لسهولة الاستخدام. ربما هناك بالفعل مثل هذه المكتبات ، لكنني لم أجدها بعد ، باستثناء واجهة برمجة تطبيقات Bitrix (ربما كنت قد بحثت بشكل سيء) ، وبالتالي قررت كتابة مكتبتي الخاصة. بالإضافة إلى ذلك ، يجب أن توافق على أنه من اللطيف استخدام مكتباتك عند العمل مع التعليمات البرمجية.تعمل المكتبة حتى الآن مع طرق GET و POST ، وكذلك مع بناء json الذي تم الحصول عليه من php: // input. وهو يعرف أيضًا كيفية إجراء عمليات التحقق على 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) {
}
استلام المفاتيح
يحدث أنك تحتاج إلى الحصول على قائمة بمعلمات الاستعلام (ليس القيم ، ولكن المفاتيح نفسها) ، هناك أيضًا طريقتان لهذا للحصول على ونشر:$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: // input)
يجب أن نتناول أيضًا طرق العمل باستخدام php: // input. هذا isRaw () - يتحقق من طلب خام ، Raw () ، والذي يعيد سلسلة 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شكرًا لك على اهتمامك .