فصل 5. Zend_Controller_RewriteRouter

قائمة المحتويات

5.1. مقدمة
5.2. إستخدام معرفات التحويل - routes
5.3. اساسيات عملية التحويل
5.4. القيم الأساسية للمتغيرات
5.5. متطلبات المتغيرات
5.6. الـ URL الأساسى و المجلدات الفرعية
5.7. الـ routes الأساسية

5.1. مقدمة

Zend_Controller_RewriteRouter هو نوع جديد من الموجه "router" الخاص بإطار العمل. عملية التوجيه أو الـ routing هى أخذ URI و تقسيمه الى قطع اصغر لمعرفة أى controller و action تابع له سيتم تمرير الطلب إليهم . تعريف أسم الـ controller و الـ action و القيم الإختيارية يتم تجميعه و وضعه فى كائن قيم أو "value object" يسمى Zend_Controller_Dispatcher_Token و الذى سيتم معالجته لاحقا بواسطة Zend_Controller_Dispatcher. عملية التوجيه "routing" تحدث مرة واحدة : بمجرد إستلام الطلب و قبل تنفيذ اول controller.

تم تصميم Zend_Controller_RewriteRouter ليسمح بأداء مماثل لـ mod_rewrite بإستخدام هيكلة PHP فقط. و هو يعتمد على فكرة الـ routing المنفذة فى Ruby on Rails و هذا لا يستلزم أى معرفة مسبقة بالـ URL rewriting من خلال الـ webserver. لقد تم تصميمه ليعمل مع أمر mod_rewrite واحد (واحد من التاليين) :

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1