Valeu Daniel.. e aproveitando. A minha IDE, PHP Storm, não está fazendo auto-completar das estruturas hierárquicas (superclasses). Em nehuma das minha classes que extende ORM, o auto-completar consegue pegar os métodos da classe Kohana_ORM, mais acima na hierarquia.
Alguém já teve esse problema na sua IDE? (no netbeans aqui funcionou.) Em 8 de março de 2012 11:06, Daniel Ribeiro Gomes <[email protected]>escreveu: > 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. > -- 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.
