Ist es möglich, Kohana Bibliotheken für ORM in PHP zu installieren, ohne das gesamte Framework?
Frage
In einer früheren Frage, fragte ich über die verschiedenen ORM-Bibliotheken. Es stellt sich heraus Kohana sieht sehr sauber, aber funktional für die Zwecke der ORM. Ich habe bereits einen MVC-Framework, das ich arbeite, obwohl in. Wenn ich will es nicht als Rahmen laufen, was ist die richtige fileset enthält nur mir Class-Dateien, die DB und ORM Basis geben?
Update:
Ich sprang in und begann an der ORM-Quellcode suchen .. Eine Sache, die mir sofort verwirrend war .. alle ORM Klassen der Klassenname mit _CORE heißt ORM_Core ORM_Iterator_Core angefügt haben, aber der Code überall die ORM-Klasse erweitert. Problem ist, habe ich den ganzen Code-Basis 6 verschiedene Möglichkeiten gesucht, und ich habe noch nie eine einfache ORM-Klasse def noch ein ORM Schnittstellendef oder irgendetwas .. Könnte jemand mich aufklären, wo die Magie passiert?
gesehenLösung
Warum nicht nur eine haben
class ORM extends ORM_Core {}
irgendwo in Ihrem Code? Dadurch entfällt die Notwendigkeit einen des Loader-Code zu verwenden.
Sie müssen auch Kohana_Exception, die Datenbank-Bibliothek (und appropraite-Treiber), Kohana :: config (), Kohana :: auto_load (), Kohana :: log () Methoden (Suche database.php für diejenigen).
Kohana ist ein großer MVC-Framework, aber nicht wirklich entworfen auseinander wie in Stücken genommen zu werden. Sie wollen auch können Lehre untersuchen, ein weiteres ORM für PHP (die Stand-alone werden soll)
Andere Tipps
Es stellt sich heraus, dass Kohana Magie Laden von Klassen verwendet, so dass, wenn eine definierte Klasse mit einem _Core Erweiterung nicht als Klasse existiert
d. ORM_Core existiert, aber ORM nicht der Fall, so Kohana wird ein ORM-Klasse magisch definieren Da das Paket verwendet 100% magische Klasse Belastung.
Falls jemand interessiert ist, ich bin zu dokumentieren meine Funde hier, so dass jeder es später finden kann:
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);
-->
So tut es ein eval ..
Zak, überprüfen ORM wartbaren Frameworks. http://framework.maintainable.com/mvc/3_model.php#c3. 7 Lesen Sie gründlich, ich bin sicher, Sie werden es mögen. Ich poste dies ausführlicher in: Was ist der einfachste ORM-Framework für PHP zu verwenden?
http://obando.com. ve / 2009/04/29 / modelado-orm-rapido-y-facil /
Das ist alles Ihre Notwendigkeit !!