Oryx.

Persistência de objeto conduzido Meta-Modelo com herança múltipla
Baixe Agora

Oryx. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Richard Hundt
  • Site do editor:
  • http://search.cpan.org/~rhundt/

Oryx. Tag


Oryx. Descrição

Persistência de objeto orientada para meta-modelo com herança múltipla Oryx é uma estrutura de persistência objeto que suporta tanto mapeamento objeto-relacional, assim como bases de dados de estilo DMB e, como tal, não é acoplado com qualquer armazenamento de back-end particular. Em outras palavras, você deve ser capaz de trocar um RDMBS com um banco de dados estilo DBM (e vice versa) sem alterar suas classes persistentes no all.This é conseguido com o uso de um modelo meta que se encaixa tão de perto com Perl próprio quanto possível - e devido à excelente capacidade de introspecção do Perl e enorme flexibilidade - isto é muito perto, de fato. Por esta razão Hash, tipos de matriz e associação de referência são implementados com o uso liberal de 'laço'. O uso de um modelo de meta, ainda que muito transparente, conceitualmente suporta a dissociação de armazenamento de back-end de classes persistentes, e, em sua maior parte, ao lado de uma muito pequena quantia de meta-dados, você usaria classes persistentes de uma forma que é virtualmente indistinguível de classes.Oryx perl comum segue o princípio de DRY - do not Repeat Yourself - inspirado pela fantástica ruby on Rails, então o que você faz por exemplo, você diz que apenas uma vez ao definir o seu $ esquema para sua classe. Depois disso, tudo é cuidado para você, incluindo a criação da tabela automática (se você estiver usando um armazenamento RDBMS). tentativas Oryx para nomear tabelas e tabelas de link criados desta forma sensata, de modo que se você precisa, você deve ser capaz de encontrar o caminho de volta no esquema com ease.Because Oryx implementa relacionamentos como array e hash referências comuns Perl, você pode criar quaisquer estruturas ou relacionamentos de objetos que você pode criar em Perl nativa e ter estes persistem em um banco de dados. Isso lhe dá a flexibilidade para criar árvores, estruturas cíclicas, listas ligadas, listas mistas (listas com instâncias de classes diferentes), etc.Oryx também suporta herança múltipla pelo mecanismo de uso base nativa do Perl. classes abstratas, que são simplesmente classes com nenhum atributo, são significativos too.SYNOPSIS # definir um pacote de classe persistente CMS :: Página; usar qw base (Oryx :: Classe); nosso $ esquema = {atributos => , associações => }; 1; # ... para mais detalhes consulte Definindo CLASSE META-DATA em L) # ================================= ========================================== # usar um persistentes CMS usar a classe: :Página; $ Page = CMS :: Página-> create ({title => 'A vida no metaverso'}); $ Page = CMS :: Página-> recuperar ($ id); $ Page-> atualização; $ Page-> delete; @pages = CMS :: Página-> Pesquisa ({autor => 'Richard Hun%'}, @order, $ limite, $ offset); # Pesquisar com cláusula SQL WHERE (as páginas que contêm um parágrafo específico): @book = CMS :: Página-> Pesquisa ({EXISTE => q {(id SELECT FROM página ONDE page.id = author.id E Page.Title COMO '% Meta')}}); # ================================================= ========================== # confirmar as alterações $ page-> commit; # ================================================= ========================== # atributo modificador $ page-> title ( 'The Metamanic Mechanic'); $ Tite = $ page-> título; # ================================================= ========================== # associação de referência modificador $ template_obj = $ page-> modelo; $ Page-> modelo ($ template_obj); # ================================================= ========================== # associação variedade acessor $ page-> parágrafos -> = $ intro_para; $ Parágrafo = $ page-> parágrafos -> ; # ================================================= ========================== # operadores de associação de matriz $ CONCL = pop @ {$ page-> parágrafos}; $ Introdução = shift @ {$ page-> parágrafos}; empurrar @ {$ page-> parágrafos}, $ CONCL; unshift @ {$ page-> parágrafos}, $ new_intro; splice @ {$ page-> parágrafos}, 1, 4, ($ resumo); # ================================================= ========================== # associação de hash acessor $ image_obj = $ page-> images -> {logotipo}; $ Page-> images -> {mug_shot} = $ my_ugly_mug; @keys = chaves% {$ page-> Imagens}; @values = valores% {$ page-> Imagens}; # ================================================= ========================== # suporte para Class :: Observable Página-> add_observer (sub {my ($ item, $ ação) = @ _; # ...}); $ Page-> add_observer (...); # Instância # =============================================== ============================ # conectar a $ armazenamento de armazenamento = Oryx-> connect (); # Ou especificar um esquema $ armazenamento = Oryx-> connect (, 'CMS :: Schema'); # Para DBM :: profunda back-end Oryx-> connect (, 'CMS :: Schema'); # ================================================= ========================== # implantar o esquema $ Storage-> deploySchema (); # Para todas as classes conhecidas (via `utilização ') $ Storage-> deploySchema (' CMS :: Schema '); $ Storage-> deployClass ( 'CMS :: Página'); # Implantar automaticamente como o uso necessário Oryx (auto_deploy => 1); # Para todas as classes CMS :: Página-> auto_deploy (1); # Apenas para esta Requisitos de classe: · Perl.


Oryx. Software Relacionado