هل من الممكن تثبيت مكتبات Kohana لـ ORM في PHP دون استخدام الإطار بأكمله؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

في سؤال سابق ، سألت عن العديد من مكتبات ORM. اتضح أن كوهانا تبدو نظيفة للغاية ولكنها وظيفية لأغراض ORM. لدي بالفعل إطار عمل MVC أعمل فيه. إذا كنت لا أرغب في تشغيله كإطار عمل ، فما هي مجموعة الملفات الصحيحة التي يجب تضمينها لتضمين ملفات الفئة الأساسية DB و ORM؟

تحديث:

لقد قفزت وبدأت في النظر إلى رمز المصدر ORM .. كان هناك شيء واحد مربكًا على الفور .. جميع فئات ORM لها اسم الفصل مع _core ie orm_core orm_iterator_core ، لكن الرمز في كل مكان يمتد فئة ORM. المشكلة هي ، لقد بحثت في قاعدة الكود بأكملها 6 طرق مختلفة ، ولم أر قط عبارة عن DEF من فئة ORM أو واجهة ORM DEF أو أي شيء .. هل يمكن لشخص ما أن ينيرني في المكان الذي يحدث فيه هذا السحر؟

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

المحلول

لماذا ليس فقط

class ORM extends ORM_Core {} 

في مكان ما في الكود الخاص بك؟ هذا يزيل الحاجة إلى استخدام أي من رمز المحمل.

ستحتاج أيضًا إلى kohana_exception ، مكتبة قاعدة البيانات (وبرنامج تشغيل appropraite) ، kohana :: config () ، kohana :: auto_load () ، kohana :: log () طرق (database.php للبحث عن هؤلاء).

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

نصائح أخرى

اتضح أن Kohana يستخدم تحميل الفئة السحرية بحيث إذا لم يكن هناك فئة محددة مع تمديد _core كصف

يوجد IE ORM_CORE ، لكن ORM لا ، لذلك ستحدد Kohana بطريقة سحرية فئة ORM لأن الحزمة تستخدم تحميل الفئة السحرية بنسبة 100 ٪.

في حال كان أي شخص مهتمًا ، أقوم بتوثيق اكتشافاتي هنا حتى يتمكن الجميع من العثور عليها لاحقًا:

From Kohana.php in the system directory:

<-- snip if ($extension = self::find_file($type, self::$configuration['core']['extension_prefix'].$class))
{
// Load the extension
require $extension;
}
elseif ($suffix !== 'Core' AND class_exists($class.'_Core', FALSE))
{
// Class extension to be evaluated
$extension = 'class '.$class.' extends '.$class.'_Core { }';
-->

<-- snip

// Transparent class extensions are handled using eval. This is
// a disgusting hack, but it gets the job done.
eval($extension);

-->

لذلك يفعل تقييم ..

Zak ، تحقق من ORM إطار العمل. http://framework.maintainable.com/mvc/3_model.php#c3.7اقرأ بدقة ، أنا متأكد من أنك ستعجبك. أنشر هذا بمزيد من التفصيل في:ما هو الأسهل في استخدام إطار ORM لـ PHP؟

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