Kohana PHP – ORM Conventions
No Kohana temos a facilidade de trabalhar com convenções em vez de configurações, isto dá agilidade e comodidade ao desenvolvedor que não precisa ficar configurando inúmeros arquivos de mapeamento de banco de dados para que sua aplicação funcione perfeitamente.
Porém, quando vamos trabalhar com databases que não seguem estas convenções (o que pra mim é algo muito comum) ou que já atendem a outros sistemas tambéme e não podem ser modificadas, temos de configurar somente as excessões para que tudo continue funcionando perfeitamente.
Algumas destas convenções, e suas excessões:
Nomes de tabelas no plural
Nomes de tabelas devem estar no plural. Por padrão o ORM obtém o nome da tabela e determina seu plural com ajuda do helper inflector.
Convenção: Ex: users, invoices.
Excessão: Declarar a propriedade table_name
protected $table_name = 'usuarios';
Models no singular
Enquanto pela convenção as tabelas no banco devem ter seu nome no plural, o nome do arquivo e do model deve ser no singular.
Convenção: NomedaTabela seguido de _Model
class User_Model extends ORM {}
Autoincrement
Toda tabela deve ter um campo autoincrement + primary key chamado id
Excessão: No model, declarar a propriedade primary_key
protected $primary_key = 'meucampoid';
Foreign Keys
Chaves estrangeiras devem ser nomeadas no banco de dados como nomeDoModel seguido de _id
Exemplo: invoice_id, user_id
Excessão: No exemplo abaixo, a tabela invoices esteja relacionada a users, porém na tabela invoices a chave estrangeira chame-se user_fk (que não segue o padrão sugerido)
No model Invoice_Model, declare a propriedade foreign_key
class Invoice_Model extends ORM {
protected $foreign_key = array('user' => 'user_fk');
}
Tabelas Pivôs
Tabelas pivôs devem ser nomeadas pelos nomes das tabelas pais na ordem alfabética (legal e organizado não?), nesta forma tabela1_tabela2. Vamos usar como exemplo o relacionamento de muitos-para-muitos entre a tabela users e as tabelas de functions, tabela de junção deve ser nomeada no banco como functions_users
Simples, não? É Kohana!
E é por isso que eu gosto.
setembro 1st, 2009 at 13:45
Legal!!! Muito bom esse post!
setembro 22nd, 2009 at 16:55
ô valeu, ajudou pra caramba, muito bom estes tutoriais do Kohana PHP
outubro 9th, 2009 at 14:47
Olá Marcelo, tudo bem?
Não consegui encontrar um e-mail para contato aqui no seu site. Sou diretora de redação da revista TIdigital (http://www.revistatidigital.com.br) e, para a edição de novembro, estou escrevendo uma matéria sobre o Kohana. Gostaria de saber se você aceita participar da matéria respondendo as seguintes perguntas:
outubro 9th, 2009 at 14:47
1) Qual o diferencial do Kohana perante outros frameworks PHP mais conhecidos e utilizados como CakePHP, Zend e Symfony?
2) O fato do Kohana ser desenvolvido para o PHP 5 traz quais vantagens em relação aos outros frameworks, que funcionam também para outras versões?
3) A versão 3.0 acaba de ser lançada. O que ela traz de novidades e melhorias? Da 1.0 para 2.0 a mudança no código foi grande, e parece que da 2.0 para a 3.0 também. Quais as vantagens e desvantagens disto?
4) Como funciona a relaçao MVC com o Kohana?
5) Por onde os desenvolvedores devem começar para aprender a programar com o Kohana?
6) O que se pode ser feito com o Kohana? Qual o forte deste framework? Ele pode ser integrado a outros frameworks e linguagens?
7) Poderia citar alguns sites que tenham aplicações desenvolvidas com o Kohana?
8) Poderia desenvolver um pequeno tutorial de alguma aplicação básica com o Kohana para que os leitores tenham uma noção de como funciona o framework?