Kaléu, esta sua solução é a maneira como o próprio Kohana resolve o problema.
Pode-se perceber, na classe Kohana_ORM, a mesma solução utilizada: /** * [Object Relational Mapping][ref-orm] (ORM) is a method of abstracting database * access to standard PHP calls. All table rows are represented as model objects, * with object properties representing row data. ORM in Kohana generally follows * the [Active Record][ref-act] pattern. * * [ref-orm]: http://wikipedia.org/wiki/Object-relational_mapping * [ref-act]: http://wikipedia.org/wiki/Active_record * * $Id: ORM.php 4427 2009-06-19 23:31:36Z jheathco $ * * @package Kohana/ORM * @category Base * @author Kohana Team * @copyright (c) 2007-2009 Kohana Team * @license http://kohanaphp.com/license.html * * @method ORM where() where(mixed $column, string $op, mixed $value) * @method ORM and_where() * @method ORM or_where() * @method ORM where_open() * @method ORM and_where_open() * @method ORM or_where_open() * @method ORM where_close() * @method ORM and_where_close() * @method ORM or_where_close() * @method ORM distinct() * @method ORM select() * @method ORM from() * @method ORM join() * @method ORM on() * @method ORM group_by() * @method ORM having() * @method ORM and_having() * @method ORM or_having() * @method ORM having_open() * @method ORM and_having_open() * @method ORM or_having_open() * @method ORM having_close() * @method ORM and_having_close() * @method ORM or_having_close() * @method ORM order_by() * @method ORM limit() * @method ORM offset() * @method bool cached() * @method int count_last_query() * * @property string $object_name * @property string $object_plural * @property bool $loaded * @property bool $saved * @property string $primary_key * @property string $primary_val * @property string $table_name * @property array $table_columns * @property array $has_one * @property array $belongs_to * @property array $has_many * @property array $load_with * @property Validate $validate * @property array $rules * @property array $callbacks * @property array $filters * @property array $labels */ class Kohana_ORM { // ... } Vou dar uma olhada em uma possível solução diferente... Daniel Ribeiro Gomes Pereira Twitter <https://twitter.com/#!/drgomesp> | Facebook<https://www.facebook.com/profile.php?id=100000407054469> | LinkedIn <http://www.linkedin.com/pub/daniel-ribeiro-gomes/21/414/39> E-mail: [email protected] iPhone: +55 (48) 9111-0931 Em 8 de março de 2012 10:54, Kaléu Caminha <[email protected]> escreveu: > Bem, acabei encontrando uma solução possível > > /** > * @property mixed $id > * @property mixed $name > * @property mixed $slug > * @property mixed $acronym > */ > class Model_Entities_State extends ORM { } > > Agora os atributos aparecem no auto-completar. > Mas deixo ainda o tema, Nestes casos, vocE^s utilizam algum outro recurso > para deixar mais claro para o programador quais dados ele pode acessar de > uma classe model? > > Obs: Desculpem o e-mail sem o assunto. > > Em 8 de março de 2012 10:34, Kaléu Caminha <[email protected]> escreveu: > > Olá pessoal, >> sou Kaléu Caminha de Florianópolis, novo na lista. >> >> Queria perguntar como vocês utilizam os modelos ORM sem precisar decorar >> o nome dos campos das tabelas. >> >> O ORM do Kohana é ótimo, basta extender a classe e pronto, tudo funciona. >> Porém, gosto de poder utilizar o recurso de auto-completar e ter acesso >> rápido ao nome dos atributos de cada tabela sem ter que decorá-los. >> >> Como vocês fazem isso? >> Se eu coloco os atributos direto na classe Modelo, perco o recurso mágico >> __get e todos os atributos, obiviamente, voltam nulo: >> >> class Model_Entities_State extends ORM { >> >> public $id; >> public $name; >> public $slug; >> public $acronym; >> public $region; >> >> } >> >> A única solução que visualizei até agora seria get e set... >> >> class Model_Entities_State extends ORM { >> >> public function setName($name) { >> $this->name = $name; >> } >> >> public function getName(){ >> return $this->name; >> } >> >> } >> >> >> Alguma outra idéia? PhpDoc? enfim...como que vocÊs utilizam os modelos >> sem precisar decorar o nome das colunas? Encapsulam tudo? >> >> -- >> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana >> Php" dos Grupos do Google. >> Para postar neste grupo, envie um e-mail para [email protected] >> . >> Para cancelar a inscrição nesse grupo, envie um e-mail para >> [email protected]. >> Para obter mais opções, visite esse grupo em >> http://groups.google.com/group/kohana-php?hl=pt-BR. >> > > -- > Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana > Php" dos Grupos do Google. > Para postar neste grupo, envie um e-mail para [email protected]. > Para cancelar a inscrição nesse grupo, envie um e-mail para > [email protected]. > Para obter mais opções, visite esse grupo em > http://groups.google.com/group/kohana-php?hl=pt-BR. > -- Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google. Para postar neste grupo, envie um e-mail para [email protected]. Para cancelar a inscrição nesse grupo, envie um e-mail para [email protected]. Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.
