الثلاثاء، 25 ديسمبر 2012

كيف يعمل دروبال -الجزء الثالث


آلية عمل دروبال

-تخديم الطلبات     Serving a Request     
يعتبر وجود إطارعمل يمكننا من معرفة ما الذي يحدث عندما يتلقى دروبال طلب ما , امر مهم جدا ومفيد. لذلك سنقوم ضمن هذا الجزء بتوفير خطوات سريعة عما يحدث عند تلقي طلب ما ضمن دروبال.
إذا كنت ترغب في أن تتتبع هذا الموضوع بنفسك , استخدم “مصحح اخطاء” debugger  جيد, وابدأ من صفحة index.php  , وهي المكان الاساسي الذي يتلقى في دروبال اغلب طلباته.
إن الخطوات المذكورة ضمن هذا المقطع لعرض صفحة ويب بسيطة ,قد تبدو معقدة, ولكنها تعج بالمرونة.

-دور مخدم الويب     The Web Server’s Role         
يعمل دروبال على مخدم ويب ,وغالبا apache  . إذا كان مخدم الويب يأخذ بعين الاعتبار ملف .htaccess في دروبال , عندها سيتم تهيئة بعض إعدادات PHP. ويتم فحص الروابط URL. تقريباً, كل الاستدعاءات لدروبال تمر من خلال صفحة index.php , على سبيل المثال , إن استدعاء لصفحة http://example.com/foo/bar  يخضع للإجرائيات التالية :
  1. تقوم قواعد mode_rewrite الموجودة في .htaccess الخاص بدروبال ,بالتدقيق على كل الروابط القادمة URL , وتقوم بفصل المسار الأساسي base URL عن المسار المتبقى.  في مثالنا , المسار هو التالي : foo/bar.
  2. يتم اسناد المسار المتبقى إلى معامل الاستعلام q ضمن ال URL.
  3. وبالتالي فإن المسار الناتج URL  هو التالي : http://example.com/index.php?q=foo/bar
  4. يعامل دروبال foo/bar  على انه مسار داخلي ضمن دروبال , وتبدأ المعالجة ضمن صفحة index.php.
وكنتيجة لهذه المعالجة , فإن دروبال يقوم بمعالجة كل من http://example.com/index.php?q=foo/bar
و http://eample.com/foo/bar  بنفس الطريقة, وذلك لأن المسار هو نفسه “بشكل داخلي ضمن دروبال” في كلا الحالتين . وهذا يُمكن دروبال من استخدام المسارات URLs بدون وجود المحارف المضحكة ضمنهم. ويشار إلى تلك المسارات URLs بالمسارات النظيفة (لانها خالية من المحارف الغير مرغوب فيها ضمن المسار).
في مخدمات ويب اخرى, مثل Microsoft IIS , يمكن تحقيق المسارات النظيفة clean URLs باستخدام وحدة Windows Internet Server Application Programming Interface(ISAPI)  مثل ISAPI Rewrite.
إن IIS الاصدار 7 وما فوق تدعم بشكل مباشر المسارات النظيفة. إذا كنت تشغّل موقعك على ISS 7  او ما فوق , فيجب عليك عندها ان تتحقق من ملف   web.config الذي تستطيع من عنده تفعيل المسارات النظيفة , نستطيع حماية ملفاتنا التي لا نرغب المتطفلين من الوصول إليها مثل .install, .module , .test, .theme, .profile, .info,  الخ

-إجرائية التمهيد     The Bootstrap Process         
يقوم دروبال بعملية تمهيد لنفسه مع كل طلب وذلك عبر الذهاب ضمن سلسلة من المراحل التمهيدية . تم تعريف هذه المراحل ضمن ملف bootstap.inc , وتمضي قدما عبر المراحل الموضحة ضمن الجدول 1-1
Purpose
Phase
Set global variables used through|out the bootstrap process
Configuration
Initializes the database system and registers autoload functions
Database
Loads system variables and all enabled bootstrap modules
Variables
Initializes session handling
Sessions
Invokes hook_boot(), initializes the locking system, and sends the default HTTP headers
Page Header
Initializes all the defined languages types
Languages
The final phase: Drupal is fully loaded by now .This phase validates and fixes the input data.
Full

-معالجة الطلبات     Processing a Request     
إن تابع الاستدعاء   callback function يقوم بأي عمل مطلوب منه لمعالجة وتجميع المعطيات المطلوبة لتنفيذ الطلب request. على سبيل المثال , إذا كان قد تم تلقي الطلب التالي لاستعراض المحتوى : http://example.com/q=node/3 فإن هذا المسار URL تتم مطابقته مع التابع node_page_view() الموجود ضمن node.module . وستجري معالجات اخرى من ضمنها استعادة معطيات هذه العقدة من قاعدة المعطيات ووضعها ضمن بنية المعطيات. وبعدها يأتي وقت ال theme (اي تطبيق السمات المناسب – ستايل)

-تطبيق السمات المناسبة على المعطيات – ستايل     Theming the Data
إن عملية تطبيق السمات المناسبة على المعطيات تتضمن نقل المعطيات التي تم استرجاعها ومعالجتها , او إنشائها ضمن HTML  ( أو XML أو اي تنسيق خرج اخر ).
يقوم دروبال باستخدام الثيم (الستايل) الذي قام المدير باختياره ليعطي الصفحة المظهر المناسب.  ثم يتم ارسال الخرج الناتج إلى مستعرض الويب ( or other HTTP client  ) .

ليست هناك تعليقات:

إرسال تعليق