سؤال

أواجه القليل من الارتباك في محاولة لأعمادة إنشاء وحدة تحكم قاعدة جديدة لمشروعي. إذا لم أكن مخطئا، فإن كل ما أحتاج إلى القيام به هو إنشاء ملف في application/libraries اتصل MY_baseController.php تحتوي على ما يلي:

class baseController extends Template_Controller
{
  public function __construct()
  {
    parent::__construct();
  }
}

ثم أعد كتابة وحدات التحكم الأخرى الخاصة بي إلى تمديد baseController بدلاً من Template_Controller:

class Frontpage_Controller extends Template_Controller

ل

class Frontpage_Controller extends baseController

بعد عندما أفعل هذا، الوصول إلى Frontpage_Controller ينبهني ذلك:

فئة 'basecontroller' غير موجود ...

ما أنا في عداد المفقودين هنا؟

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

المحلول

بعد بعض الاصطد، أعتقد أن ما يلي هو الحل الخاص بي ...

نقل MY_baseController.php من عند application/libraries و الى application/controllers. وبعد إعادة تسميته إلى base.php وتغيير السطر التالي:

class baseController extends Template_Controller

داخل

class Base_Controller extends Template_Controller

الآن ضمن وحدة تحكم FrontPage الخاصة بك، تمتد Base_Controller بدلاً من baseController.

نصائح أخرى

تأكد من اتباع اتفاقيات Kohana للتأكد من أن كل شيء أحمال تلقائي بشكل صحيح! هناك منها مشابه فيما يتعلق بالمساعدين النماذج والمكتبات.

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

فقط لا تنسى إضافة الوحدة إلى ملف التكوين الخاص بك!

أعلم أن هذا سؤال قديم، لكنني اعتقدت أنني سأضع كلمة. تحتاج فقط إلى إزالة بادئة My_ من اسم الملف كما تحتاج فقط إلى ذلك حقا عند تمديد فئة فاتنة مع _Core في مجلد النظام. على سبيل المثال، الملف ل

class Controller extends Controller_Core

سيتم تسمية my_controller.php.

في هذه الحالة، فقط تسمية الملف BaseController.php ووضعه في مجلد المكتبات سيعمل.

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

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