MVC، كيفية تنظيم أجزاء التخزين المؤقت من الصفحة وكيف تكون مع العرض؟

StackOverflow https://stackoverflow.com/questions/2400959

سؤال

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

دعونا نتخيل أن لدي postcontroller مع الأسلوب getpostdetetailsshortly ($ post_id). هذه الطريقة يمكن أن تبدو مثل هذا ...

public function getPostDetailsShortly($post_id) {

  if (!$post_id) return false;
  $content = $this->memcache->get("post" . $post_id); //Trying to get post details HTML from memcache

  if (!$content) { //Not fount in memcache

    $model = new PostsModel();
    $data = $model->getPostDetailsShortly($post_id);

    $this->view->assign('data', $data);

    ob_start();
    $this->view->render();
    $content = ob_get_contents(); //Getting view output into variable
    ob_end_clean();

    $this->memcache->set('post' . $post_id, $content, 1000); //Writing variable to memcache

  }

  return $content;

}

الآن يجب أن أجعل طريقة وحدة التحكم هذه متاحة من وجهات النظر. لأنني سأستخدمها داخل صفحات أخرى، على سبيل المثال، لبناء قائمة الوظائف ذات الصلة.

ما هي أفضل الممارسات للقيام بذلك؟ ربما أنا مخطئ وهناك بعض الأساليب الأفضل لتنظيم أجزاء التخزين المؤقت من الصفحات؟

ملاحظة: آسف لغتي الإنجليزية، ولكن آمل أن يكون واضحا.

شكرا لك!

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

المحلول

الفكرة وراء MVC لأولئك الذين قد يقرأون هذا الذين لا يعرفون، هو فصل النموذج، وعرض، بنية التحكم في الموقع. أنا الأكثر دراية بإطار CakePhp MVC. لذلك ستستند هذه الإجابة إلى معرفتي من MVC لأنها تتعلق ب CakePhp.

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

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

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