سؤال

قام إطار PHP الذي أستخدمه (Kohana) بتنفيذ بنية HMVC مؤخرًا. لقد قرأت أنها MVC ذات الطبقات حيث يتم تقديم الطلبات فوق بعضها البعض. إنه يشبه إلى حد ما Ajax ، فقط خادم بحت. لقد طبقتها قليلاً على بعض التجارب ، لكن لا يمكنني تطبيقها على أي من مشاريعي (لأنني لا أستطيع العثور على حاجة إليها). هل سبق لك أن استخدمت HMVC في مشروع من قبل؟ كيف ساعدك؟

هل كانت مفيدة؟

المحلول

إنه يشبه إلى حد ما Ajax ، فقط خادم بحت.

هذا تشبيه جيد.

HMVC لطيف لإضافة أجهزة واجهة المستخدم إلى الصفحات - أجزاء معيارية من المحتوى الذي ستعيد استخدامه في صفحات قليلة. على سبيل المثال ، عنصر واجهة فرقة التسوق. يمكنك أن تفعل الشيء نفسه بطرق مختلفة:

  1. مكتبة. لقد اعتدنا على نقل التعليمات البرمجية القابلة لإعادة الاستخدام من وحدة تحكم إلى مكتبة. بعد ذلك ، من وحدة التحكم ، يمكنك تحميل نتائج مكالمة إلى تلك المكتبة في متغير عرض.
  2. منظر. يمكنك تحميل عرض (جزئي) من داخل العرض الرئيسي. هذا العرض الجزئي يمكن أن يسحب المحتوى من النماذج. استدعاء النماذج من وجهات النظر ليست دائمًا شائعة ولكنها ليست خاطئًا بالضرورة.

ومع ذلك ، لدى Kohana HMVC بعض المزايا:

  1. الاتساق - يتم التعامل مع طلبات HMVC نفس طلبات HTTP الخارجية.
  2. Power - طلبات HMVC لديها نفس موارد Kohana مثل طلبات HTTP بما في ذلك الطرق.
  3. Plugglaby - عند استدعاؤه من عرض ، لا يحتوي طلب HMVC على اقتران بين وحدة التحكم (والذي يعين نتائج المكتبة إلى عرض) ومكافأة نائبة. يمكنك لمس ملف واحد فقط بدلاً من اثنين.

بدأت أقدر قضية HMVC وقابلية التوسع مع طلبات HTTP على أنها مرتبطة بواسطة Kiall. نفس الشيء يمكن القيام به مع حليقة. ومع ذلك ، قد يكون من الطبيعي التصميم مع Kohana HMVC من حليقة من البداية.

نصائح أخرى

حسنًا - نشر Sam de Freyssinet (المعروف أيضًا باسم Samsoir) ، أحد مطوري Kohana ، مؤخرًا مقالًا يتناول هذا السؤال.

http://techportal.inviqa.com/2010/02/22/scaling-web-applications-with-hmvc/

في حين أنه ليس الاستخدام الوحيد لـ HMVC - فهو أحد الاستخدامات الأكثر شعبية. تهتم المقالة بشكل أساسي بقابلية التوسع (كما هو الحال في عدد الطلبات في الثانية) ولكن يمكن حل قابلية التوسع في التعليمات البرمجية (كما هو الحال في ، ما مدى سهولة/الصعوبة في الحفاظ) على نفس الأفكار ..

أتمنى أن يساعدك هذا :)

(ملاحظة جانبية - تستند عينات الكود الخاصة به إلى تغييرات سام الشخصية على كوهانا - راجع الملاحظة في نهاية المقالة)

في مشروع بسيط قد لا تجد استخدامًا حقيقيًا للنمط المعماري لـ HMVC. ولا يجب أن تحاول حتى. هنا لماذا:

كانت النقطة الكاملة في إنشاء بنية HMVC هي جعل MVC جافًا قليلاً. واحدة من الفوائد الرئيسية لـ HMVC هي إعادة استخدام الكود. يتيح لك أن يكون لديك شظايا تكرر في جميع أنحاء التطبيق الخاص بك (في بعض الأحيان في نفس المكان ، في أوقات أخرى - لا).

إذا كنت تكتب كتطبيق اختبار صغير ، فلن يكون هناك أي شظايا قابلة للتكرار. وبالتالي ، لا حاجة لاستخدام إمكانات HMVC كاملة. ينتهي بك الأمر بمستوى واحد من HMVC ، وهو MVC القياسي.

هنا يمكنك قراءة المنشور الأصلي ، الذي قدم HMVC. في عام 2000.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top