É possível instalar bibliotecas Kohana para ORM no PHP sem usar toda a estrutura?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Em uma pergunta anterior, perguntei sobre várias bibliotecas do ORM. Acontece que Kohana parece muito limpo, mas funcional para os propósitos do ORM. Eu já tenho uma estrutura de MVC em que estou trabalhando. Se eu não quero executá -lo como uma estrutura, qual é o conjunto de arquivos certo para incluir apenas os arquivos da classe base do banco de dados e ORM?

Atualizar:

Eu pulei e comecei a procurar o código -fonte do ORM. Uma coisa foi imediatamente confusa para mim. Todas as classes ORM têm o nome da classe anexado com _core ie orm_core orm_iterator_core, mas o código em todos os lugares está estendendo a classe ORM. O problema é que pesquisei todo o código base 6 maneiras diferentes, e nunca vi uma classe ORM Plain ou uma interface ORM definitivamente ou algo assim. Alguém poderia me iluminar sobre onde essa mágica acontece?

Foi útil?

Solução

Por que não apenas ter um

class ORM extends ORM_Core {} 

Em algum lugar do seu código? Isso remove a necessidade de usar qualquer código do carregador.

Você também precisará de Kohana_Exception, a biblioteca de banco de dados (e driver apropraite), kohana :: config (), kohana :: auto_load (), kohana :: log () métodos (pesquisa de dados de dados de dados.php para esses).

Kohana é uma ótima estrutura de MVC, mas não foi realmente projetada para ser desmontada em pedaços como esse. Você pode querer investigar também Doutrina, outro ORM para PHP (que foi projetado para ser independente)

Outras dicas

Acontece que Kohana usa a classe mágica carregando para que, se uma classe definida com uma extensão _core não existir como uma classe

O IE ORM_CORE existe, mas ORM não, então Kohana definirá magicamente uma classe ORM, pois o pacote usa 100% de carga de classe mágica.

Caso alguém esteja interessado, estou documentando minhas descobertas aqui para que todos possam encontrá -lo mais tarde:

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);

-->

Então faz uma avaliação ..

Zak, verifique o orm da estrutura sustentável. http://framework.maintainable.com/mvc/3_model.php#c3.7Leia minuciosamente, tenho certeza de que você gostará. Eu posto isso com mais detalhes em:Qual é a estrutura ORM mais fácil de usar para PHP?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top