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.

Responder a