Latest web development tutorials
×

PHP مسار

PHP مسار PHP مقدمة موجزة PHP تثبيت PHP قواعد PHP متغير PHP echo/print PHP أنواع البيانات PHP ثابت PHP سلسلة PHP مشغلي PHP If...Else PHP Switch PHP مجموعة PHP فرز مجموعة PHP Superglobals PHP While تداول PHP For تداول PHP وظيفة PHP المتغيرات السحرية PHP مساحات PHP الشيئية

PHP شكل

PHP شكل PHP مصادقة النماذج PHP شكل - الحقول المطلوبة PHP شكل - البريد الإلكتروني التحقق وURL PHP المثال شكل كامل PHP $_GET متغير PHP $_POST متغير

PHP دروس متقدمة

PHP المصفوفات متعددة الأبعاد PHP تاريخ PHP احتواء PHP ملف PHP تحميل ملف PHP Cookie PHP Session PHP E-mail PHP أمن E-mail PHP Error PHP Exception PHP فلتر PHP فلتر متقدم PHP JSON

PHP 7 الميزات الجديدة

PHP 7 الميزات الجديدة

PHP قاعدة بيانات

PHP MySQL مقدمة موجزة PHP MySQL صلة PHP MySQL إنشاء قاعدة بيانات PHP MySQL إنشاء جدول بيانات PHP MySQL إدراج بيانات PHP MySQL إدراج بيانات متعددة PHP MySQL القوائم المعدة PHP MySQL قراءة البيانات PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX مقدمة موجزة AJAX PHP AJAX قاعدة بيانات AJAX XML AJAX البحث في الوقت الحقيقي AJAX RSS Reader AJAX تصويت

PHP الدليل المرجعي

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP معالجة الصور PHP RESTful

PHP مريحة

REST (بالإنكليزية: نقل دولة التمثيلي، ودعا بقية)، ويشير إلى مجموعة من القيود والمبادئ المعمارية.

ويطلق على غرار بقية تصميم واجهة برمجة التطبيقات API الويب ومريحة. ويعرف ذلك من الموارد الثلاثة التالية:

  • بديهية وجيزة عنوان الموارد: أوري، على سبيل المثال: http://example.com/resources/ .
  • الموارد ناقل الحركة: خدمة ويب تقبل بعودة أنواع وسائل الإعلام الإنترنت، مثل: JSON، XML، يام تريد.
  • تشغيل الموارد: أسلوب خدمة ويب في سلسلة من الطلبات على الموارد المدعومة (على سبيل المثال: POST، GET، PUT أو DELETE).

هذا البرنامج التعليمي سوف نستخدم PHP (لم يحدد اطارا) لإنشاء خدمة على شبكة الإنترنت مريحة، يمكنك تحميل في نهاية المقال إلى استخدام التعليمات البرمجية في هذا القسم.

في هذا البرنامج التعليمي، وسوف تتعلم ما يلي:

  • إنشاء خدمة ويب مريحة.
  • باستخدام PHP الأصلي، لا تعتمد على أي إطار.
  • إستراحة نمط URI اتباع القواعد.
  • تقبل خدمة مريحة والشكل قد يتم إرجاع JSON، XML وهلم جرا.
  • رموز حالة HTTP استجابة تبعا للحالة المقابلة.
  • طلبات تجريبي الرأس.
  • استخدام العميل REST لاختبار خدمة ويب مريحة.

أمثلة من خدمة ويب مريحة

التعليمة البرمجية التالية هي الطبقة خدمة مريحة Site.php:

أمثلة

<؟ PHP
/ *
* هذا البرنامج التعليمي يوضح أمثلة على راحة
* الطبقة خدمة مريحة
* /
الموقع الطبقة {

مواقع $ = خاصة مجموعة (
1 => 'تاوباو،
2 => 'جوجل'،
3 => 'w3big،
4 => 'بايدو،
5 => 'ويبو "،
6 => 'سينا'




getAllSite ظيفة عمومية () {
العودة $ هذا -> المواقع؛
}

وظيفة عامة getSite ($ معرف) {

$ الموقع = مجموعة ($ معرف = > ($ هذا -> مواقع الكترونية [$ معرف]) $ هذا -> مواقع الكترونية [$ معرف] :؟ $ هذا -> مواقع الكترونية [1])؛
العودة $ الموقع؛
}
}
؟>

رسم الخرائط راحة الخدمات URI

يجب تعيين خدمات مريحة URI إلى عنوان الموارد البصرية وجيزة. يجب تعيين الخادم هتكس أباتشي فوق قواعد إعادة كتابة المقابلة.

هذا المثال سوف نستخدم قاعدتين URI:

1، للحصول على قائمة بجميع المواقع:

http://localhost/restexample/site/list/

2، وذلك باستخدام معرف للموقع المحدد، أوري التالي للحصول على معرف 3 مواقع:

http://localhost/restexample/site/list/3/

هتكس قواعد التكوين ملف المشروع هي كما يلي:

# 开启 rewrite 功能
Options +FollowSymlinks
RewriteEngine on

# 重写规则
RewriteRule ^site/list/$   RestController.php?view=all [nc,qsa]
RewriteRule ^site/list/([0-9]+)/$   RestController.php?view=single&id=$1 [nc,qsa]

تحكم مريحة خدمة الويب

في ملفهتكس، فسوف نحصل على ملف RestController.php على طلب المقابلة عن طريق وضع "عرض" معلمة، عن طريق الحصول على المعلمات "عرض" مختلفة لتوزيعها على وسائل مختلفة.كود ملف RestController.php على النحو التالي:

أمثلة

<؟ PHP
require_once ( "SiteRestHandler.php")؛

$ عرض = ""؛
إذا (_GET isset ($ & # 91؛ "وجهة نظر" & # 93؛))
$ عرض = $ _GET & # 91 ؛ "وجهة نظر" & # 93 ؛؛
/ *
* وحدة تحكم خدمة مريحة
* تعيين URL
* /
التبديل ($ عرض) {

حالة "جميع":
// التعامل مع بقية عنوان / الموقع / القائمة /
$ siteRestHandler = الجديدة SiteRestHandler ()؛
$ siteRestHandler -> getAllSites ()؛
كسر.

حالة "واحد":
// التعامل مع بقية عنوان / الموقع / المعرض / < معرف> /
$ siteRestHandler = الجديدة SiteRestHandler ()؛
$ siteRestHandler -> getSite ($ _GET [ "المعرف"])؛
كسر.

حالة "":
// 404 - لم يتم العثور.
كسر.
}
؟>

دروس بسيطة مؤسسة مريحة

وفيما يلي يوفر قاعدة الطبقة مريحة للتجهيز في استجابة لطلب رمز حالة HTTP، رمز ملف SimpleRest.php على النحو التالي:

أمثلة

<؟ PHP
/ *
* بسيطة خدمات الشبكة راحة الفئة الأساسية
* ونحن يمكن أن تمتد هذه الفئة بناء على الطلب
* /
الطبقة SimpleRest {

$ الخاص httpVersion = "HTTP / 1.1 ".

setHttpHeaders ظيفة عمومية ($ contentType، $ statusCode) {

$ statusMessage = $ هذا -> getHttpStatusMessage ($ statusCode)؛

رأس ($ هذا -> httpVersion " " $ statusCode .. "" $ statusMessage ..)؛
رأس ( "نوع المحتوى:" $ contentType)؛
}

وظيفة عامة getHttpStatusMessage ($ statusCode) {
$ httpStatus = مجموعة (
100 => 'متابعة'،
101 => 'بروتوكولات تبديل،
200 => 'موافق'،
201 => 'مكون'،
202 => 'مقبول'،
203 => 'غير موثوقة معلومات ،
204 => 'لا المحتوى،
205 => 'إعادة تعيين المحتوى،
206 => 'المحتوى الجزئي،
300 => 'خيارات متعددة'،
301 => 'منقول بشكل دائم،
302 => 'وجدت،
303 => 'انظر أخرى،
304 => 'لم يتم تعديل،
305 => 'استخدام وكيل "،
306 => '(غير المستخدمة) " ،
307 => 'إعادة توجيه المؤقتة،
400 => 'طلب غير صحيح'،
401 => 'غير مصرح بها،
402 => 'الدفع المطلوبة،
403 => 'المحرمة'،
404 => 'لم يتم العثور على "،
405 => 'أسلوب غير مسموح' ،
406 => 'غير مقبول'،
407 => 'مطلوب مصادقة الوكيل " ،
408 => 'مهلة طلب،
409 => 'الصراع'،
410 => 'ذهب'،
411 => 'طول المطلوبة،
"فشل الشرط المسبق" 412 =>،
413 => 'طلب الوحدة كبير جدا ،
414 => 'طلب إلى أوري جدا طويل،
415 => 'نوع الوسائط غير مدعوم " ،
416 => 'النطاق المطلوب غير كاف
417 => 'فشل التوقع،
500 => 'خطأ خادم داخلي " ،
501 => 'لم تنفذ،
502 => 'بوابة باد "،
503 => 'الخدمة غير متوفرة "،
504 => 'مهلة البوابة'،
505 => 'HTTP الإصدار غير معتمد ')؛
عودة ($ httpStatus [$ statusCode] ) $ httpStatus [$ statusCode]: $ وضع [500] ؛؟
}
}
؟>

راحة الويب الدرجة معالجة الخدمة

وفيما يلي مريحة خدمة ويب الطبقة معالج SiteRestHandler.php، ورثت ما سبق يمكننا توفير قاعدة الطبقة مريحة، يتم تحديد الفئة من قبل المعلمات لطلب لتحديد ما إذا كانت رموز حالة HTTP عاد ونماذج البيانات، ونحن نقدم أمثلة على ثلاثة نماذج البيانات: "التطبيق / سلمان"، "التطبيق / أكس" أو "نص / أتش تي أم أل":

كود ملف SiteRestHandler.php على النحو التالي:

أمثلة

<؟ PHP
require_once ( "SimpleRest.php")؛
require_once ( "Site.php")؛

الطبقة SiteRestHandler يمتد SimpleRest {

getAllSites وظيفة () {

$ الموقع = الموقع الجديد ()؛
$ rawData = $ الموقع -> getAllSite ()؛

إذا (فارغ ($ rawData)) {
$ statusCode = 404؛
$ rawData = مجموعة ( 'خطأ' => 'لا مواقع موجود!')؛
} {شيء آخر
$ statusCode = 200؛
}

$ requestContentType = $ _SERVER [ 'HTTP_ACCEPT '].
دولار هذا -> setHttpHeaders ($ requestContentType ، $ statusCode)؛

إذا (strpos ($ requestContentType، " التطبيق / سلمان ')! == كاذبة) {
استجابة $ = $ هذا -> encodeJson ($ rawData)؛
صدى $ الاستجابة؛
} آخر إذا (strpos ($ requestContentType ، 'نص / أتش تي أم أل')! == الكاذبة) {
استجابة $ = $ هذا -> encodeHtml ($ rawData)؛
صدى $ الاستجابة؛
} آخر إذا (strpos ($ requestContentType ، "التطبيق / أكس ')! == الكاذبة) {
استجابة $ = $ هذا -> encodeXml ($ rawData)؛
صدى $ الاستجابة؛
}
}

وظيفة عامة encodeHtml ($ responseData) {

$ htmlResponse = "<حدود الجدول = " 1 ">".
foreach ($ responseData من $ الرئيسية = > قيمة $) {
.. $ htmlResponse = "<tr > <td>" $ المفتاح "</ td> <td>" قيمة $ "</ td> </ tr>" ...؛
}
. $ htmlResponse = "</ الجدول >".
العودة $ htmlResponse.
}

وظيفة عامة encodeJson ($ responseData) {
$ jsonResponse = json_encode ($ responseData) .
عودة $ jsonResponse.
}

encodeXml ظيفة عمومية ($ responseData) {
// إنشاء SimpleXMLElement كائن
$ أكس = الجديدة SimpleXMLElement ( '< موقع> </ الموقع> <أكس الإصدار = "1.0"؟>')؛
foreach ($ responseData من $ الرئيسية = > قيمة $) {
$ أكس -> addChild (مفتاح $ ، قيمة $)؛
}
عودة $ أكس -> asXML () .
}

وظيفة عامة getSite ($ معرف) {

$ الموقع = الموقع الجديد ()؛
$ rawData = $ الموقع -> getSite ($ معرف)؛

إذا (فارغ ($ rawData)) {
$ statusCode = 404؛
$ rawData = مجموعة ( 'خطأ' => 'لا مواقع موجود!')؛
} {شيء آخر
$ statusCode = 200؛
}

$ requestContentType = $ _SERVER [ 'HTTP_ACCEPT '].
دولار هذا -> setHttpHeaders ($ requestContentType ، $ statusCode)؛

إذا (strpos ($ requestContentType، " التطبيق / سلمان ')! == كاذبة) {
استجابة $ = $ هذا -> encodeJson ($ rawData)؛
صدى $ الاستجابة؛
} آخر إذا (strpos ($ requestContentType ، 'نص / أتش تي أم أل')! == الكاذبة) {
استجابة $ = $ هذا -> encodeHtml ($ rawData)؛
صدى $ الاستجابة؛
} آخر إذا (strpos ($ requestContentType ، "التطبيق / أكس ')! == الكاذبة) {
استجابة $ = $ هذا -> encodeXml ($ rawData)؛
صدى $ الاستجابة؛
}
}
}
؟>

نحن المقبل خلال http: // المضيف المحلي / restexample / الموقع / قائمة / زيارة، نتائج الإخراج هي كما يلي:


العميل مريحة خدمة الويب

ثم يمكننا استخدام عملاء خدمة ويب كما مريحة "تقدم الراحة العميل" متصفح Google Chrome لطلب خدماتنا.

أمثلة على طلب HTTP: // المضيف المحلي / restexample / الموقع / قائمة / عنوان، البيانات الواردة مشابهلقبول: التطبيق / سلمان

3 طلب معرف الموقع w3big (تعليمي)، عنوان الوصول هو http: // المضيف المحلي / restexample / الموقع / القائمة / 3 /،

مصدر تحميل

رمز المستخدمة في المثال إلى انقر فوق الزر أدناه لتحميل:

مصدر تحميل