كيف تبدو إعداد قاعدة البيانات والجلسة في كوهانا؟

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

  •  13-09-2019
  •  | 
  •  

سؤال

لا أحصل على هذا: يقولون أنه من الجيد إجراء "وحدة تحكم أساسية" التي تنسجم قاعدة البيانات والجلسة:

// Base Controller code
$this->db = Database::instance($db_group);
$this->session = Session::instance();
// Now in any controller which extends Base Controller
$var = $this->session->get('var');
$query = $this->db->query('SELECT * FROM `table`);

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

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

المحلول

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

$this->db

ينطبق الشيء نفسه على العديد من الأشياء الأخرى، على سبيل المثال $this->uri. وبعد يعني تطبيقي لنمط MVC أن كل عمل DB في النماذج الخاصة بي، لست متأكدا مما إذا كانت هذه هي أفضل طريقة للقيام بذلك، لكنها تعمل من أجلي.

بالنسبة للجلسات، يمكنك دائما استخدام الأساليب الثابتة للحصول على Singleton

$mySession = Session::instance();

أنا متأكد من أن معظم / معظم المساعدين / المكتبات لديهم طريقة مماثلة لاستخدامها - بدءها من $ هذا أو استخدام الطريقة الثابتة.

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