[CodeIgniter] Chamar model dentro de model
Flavio 'Zaca' Diniz
zaca10 em gmail.com
Quinta Dezembro 6 17:44:42 BRST 2007
Eu concordo com você. Mas o fato é: eu não vou conseguir com que mudem
o prazo que eu tenho para desenvolver. Portanto, se eu faço da maneira
correta, não entrego no prazo.
Esta é uma questão que infelizmente não é o desenvolvedor ou o
analista que vai poder definir, no meu caso específico. Se eu digo:
"pra fazer bem feito, preciso do prazo X" e me dizem: "sinto muito,
mas eu preciso disso pronto em um prazo X/2", eu não tenho muito pra
onde correr...
On Dec 6, 2007 5:33 PM, Daniel Costa <danielcosta em gmail.com> wrote:
> Alguém já testou carregar a library Validation num model e verificar se ela
> funciona da mesma forma que no Controller? Realmente nunca tinha parado pra
> pensar nisso com o CI, colocando toda a validação no Model...
>
>
>
>
>
> On Dec 6, 2007 11:50 AM, Luciano Soares <lussterl em gmail.com> wrote:
> > Eu entendo o que vc disse newton, mas no caso, como o Daniel Falou, que o
> framework vem com uma validação, por que não utilizá-la? Já que até ataques
> XSS ela valida. E a mesma so pode ser usada no controller.
> >
> > Eu faço como o Daniel, valido algumas coisas no controle na classe
> validation e outras no model.
> >
> >
> > Em 06/12/07, Newton Wagner <newtonweb em gmail.com> escreveu:
> >
> >
> >
> > > Eu discordo de um ponto só.
> > >
> > > Pra mim, quem valida se o campo é obrigatório ou não, se o e-mail é
> > > valido ou não, é o Modelo. Isso é uma regra de negócio.
> > >
> > > É meio polêmico e conceitual, mas é por aí. :).
> > >
> > >
> > > --
> > > Newton Wagner
> > >
> > > skype: newtonwagner
> > > msn/gtalk: newtonweb em gmail.com
> > >
> > > http://www.newtonwagner.net/blog
> > > - http://www.owshit.com.br/
> > >
> > >
> > > Em 06/12/07, Daniel Costa<danielcosta em gmail.com> escreveu:
> > > > Regra de negócio muito básica pra ajudar a galera: autenticação de
> usuário!
> > > > =) (eu falei que era básica)
> > > >
> > > > Digamos que o login em um sistema web seja feito com email e senha - a
> senha
> > > > deve ser sempre um hash do conteúdo real .
> > > > Etapas:
> > > >
> > > > View: O usuário preenche login e senha e envia o form
> > > > Controller: Recebe os dados do post, trata ou valida esses dados (se é
> > > > obrigatório/e-mail válido/etc) e encaminha para o Model verificar a
> > > > autenticidade das informações.
> > > > Model: Faz o hash da senha preenchida na view; seleciona e-mail e
> senha (que
> > > > já é armazenada como hash); se os hashs são iguais para o e-mail
> preenchido
> > > > na view, o model retorna true; senão, retorna false para o controller.
> > > > Controller: Se o model retornou true, encaminha para a área restrita
> de um
> > > > sistema (pode carregar dados na seção ou ainda fazer outras tarefas
> > > > internas); se o model retornou false, encaminha para uma view com
> mensagem
> > > > de erro amigável. Como vocês puderam perceber, o controller serve
> apenas de
> > > > meio de campo mesmo, e no model é que são implementados todos os
> requisitos.
> > > > Não quer dizer que o controller não possa ter os if, elses que o
> colega
> > > > falou anteriormente, mas vai ter somente para controles do fluxo de
> > > > execução, e não para execução de regra de negócio, que por boas
> práticas,
> > > > devem sim ficar no model.
> > > >
> > > > Flw pessoal.
> > > >
> > > >
> > > >
> > > > On Dec 6, 2007 10:14 AM, Luciano Soares < lussterl em gmail.com> wrote:
> > > > > Essa assunto sobre regras de negócio e MVC já foi discutido pelo
> pessoal
> > > > do grupo da lista php que participo há um tempo.
> > > > >
> > > > > Estou procurando aqui o link pra thread.
> > > > >
> > > > > Mas achei ese conteúdo aqui.
> > > > >
> > > > >
> > > > > "A arquitetura MVC - (Modelo Visualização Controle) fornece uma
> maneira de
> > > > dividir a funcionalidade envolvida na manutenção e apresentação dos
> dados de
> > > > uma aplicação. A arquitetura MVC não é nova e foi originalmente
> desenvolvida
> > > > para mapear as tarefas tradicionais de entrada , processamento e saída
> para
> > > > o modelo de interação com o usuário. Usando o padrão MVC fica fácil
> mapear
> > > > esses conceitos no domínio de aplicações Web multicamadas.
> > > > >
> > > > > Na arquitetura MVC o modelo representa os dados da aplicação e as
> regras
> > > > do negócio que governam o acesso e a modificação dos dados. O modelo
> mantém
> > > > o estado persistente do negócio e fornece ao controlador a capacidade
> de
> > > > acessar as funcionalidades da aplicação encapsuladas pelo próprio
> modelo.
> > > > >
> > > > > Um componente de visualização renderiza o conteúdo de uma parte
> particular
> > > > do modelo e encaminha para o controlador as ações do usuário; acessa
> também
> > > > os dados do modelo via controlador e define como esses dados devem ser
> > > > apresentados.
> > > > >
> > > > > Um controlador define o comportamento da aplicação , é ele que
> interpreta
> > > > as ações do usuário e as mapeia para chamadas do modelo. Em um cliente
> de
> > > > aplicações Web essas ações do usuário poderiam ser cliques de botões
> ou
> > > > seleções de menus. As ações realizadas pelo modelo incluem ativar
> processos
> > > > de negócio ou alterar o estado do modelo. Com base na ação do usuário
> e no
> > > > resultado do processamento do modelo , o controlador seleciona uma
> > > > visualização a ser exibida como parte da resposta a solicitação do
> usuário.
> > > > Há normalmente um controlador para cada conjunto de funcionalidades
> > > > relacionadas." http://www.macoratti.net/vbn_mvc.htm
> > > > >
> > > > > Então, o modelo seria responsável por representar e persistir os
> dados
> > > > além das regas de negócio.
> > > > >
> > > > > A visão renderiza o conteúdo e encaminha as ações para o
> contralador.
> > > > >
> > > > > O controlador é o responsável por toda a interconexão das acções com
> os
> > > > dados.
> > > > >
> > > > >
> > > > > Em 06/12/07, Gilson < gilson.wolfart em gmail.com > escreveu:
> > > > >
> > > > >
> > > > >
> > > > > > Luciano, explica direito esse negõcio de regras de negócio no
> modelo,
> > > > > > porquê eu comecei com o CodeIgniter há pouquíssimo tempo (na
> verdade
> > > > > > estou no primeiro projeto com ele) e, se for assim, estou fazendo
> tudo
> > > > > > errado.
> > > > > >
> > > > > > Abraços,
> > > > > > Gilson
> > > > > >
> > > > > > Em 06/12/07, Luciano Soares< lussterl em gmail.com> escreveu:
> > > > > > > Osdeni, numa arquitetura MVC as regras e negócio ficam no
> modelo e
> > > > não no
> > > > > > > controlador.
> > > > > > >
> > > > > > >
> > > > > > > Em 05/12/07, Osdeni José Sadzinski < osdeni em gmail.com> escreveu:
> > > > > > > > Como o Marco falou, pode ser um helper também, depende da
> > > > complexidade
> > > > > > > dessa classe Data.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On Dec 5, 2007 2:02 PM, Marco Telles <
> contato em pierdeipanema.com.br
> > > > >
> > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Uma vez rolou essa questão aqui, e a julgar pelo conteúdo do
> core
> > > > do ci,
> > > > > > > > > onde todas as funções ficam no helpers e na libray as
> classes,
> > > > você
> > > > > > > > > poderia colocar suas funções no helpers de sua aplicação.
> > > > > > > > > Agora isso é uma questão pessoal. Se você preferir pode até
> > > > colocar como
> > > > > > > > > no método tradicional, como uma pasta include
> (desnecessária, mas
> > > > é uma
> > > > > > > > > opção).
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Muita sorte para nós!
> > > > > > > > >
> > > > > > > > > Marco Telles
> > > > > > > > >
> > > > > > > > > #############
> > > > > > > > > # Pier de Ipanema (
> > > > http://www.pierdeipanema.com.br/ )
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Cleyverson Costa escreveu:
> > > > > > > > >
> > > > > > > > > > Sim Marco,
> > > > > > > > > >
> > > > > > > > > > Mas se eu nao coloco no model eu coloco onde?? Como uma
> > > > library??
> > > > > > > > > >
> > > > > > > > > > Em 05/12/07, *Marco Telles* < contato em pierdeipanema.com.br
> > > > > > > > > > <mailto: contato em pierdeipanema.com.br>> escreveu:
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Se é uma função 'genérica', não seria o caso dela
> estar fora
> > > > do
> > > > > > > > > > model e
> > > > > > > > > > disponível para qualquer model ou controller ?
> > > > > > > > > > Assim, você pelo controler, inclui sua função, faz o
> acesso
> > > > ao
> > > > > > > model
> > > > > > > > > > 'data', recebe como retorno a 'data trabalhada', chama
> o
> > > > model
> > > > > > > pessoa
> > > > > > > > > > enviando a 'data trabalhada' como parâmetro. Pelo que
> > > > entendi
> > > > > > > > > > seria isso
> > > > > > > > > > uma forma ?
> > > > > > > > > >
> > > > > > > > > > Abs
> > > > > > > > > >
> > > > > > > > > > Muita sorte para nós!
> > > > > > > > > >
> > > > > > > > > > Marco Telles
> > > > > > > > > >
> > > > > > > > > > #############
> > > > > > > > > > # Pier de Ipanema (
> > > > > > > http://www.pierdeipanema.com.br/ )
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Cleyverson Costa escreveu:
> > > > > > > > > > > Tipo.
> > > > > > > > > > >
> > > > > > > > > > > Eu criei o model pessoa e o model data por exemplo.
> > > > > > > > > > >
> > > > > > > > > > > Dentro do model pessoa eu tenho uma funçao que faz
> uma
> > > > chamada
> > > > > > > no
> > > > > > > > > > > banco a uma data e trabalha trabalha com ela. Eu
> refazer o
> > > > > > > codigo
> > > > > > > > > > > dentro de pessoa é besteira, entao eu so quero estar
> > > > dentro de
> > > > > > > > > > pessoa
> > > > > > > > > > > e chamar a funçao que está dentro do model data.
> > > > > > > > > > >
> > > > > > > > > > > É errado fazer isso?
> > > > > > > > > > >
> > > > > > > > > > > Abraços
> > > > > > > > > > >
> > > > > > > > > > > Em 05/12/07, *Osdeni José Sadzinski* <
> osdeni em gmail.com
> > > > > > > > > > <mailto: osdeni em gmail.com>
> > > > > > > > > > > <mailto:osdeni em gmail.com <mailto: osdeni em gmail.com
> >>>
> > > > escreveu:
> > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Mas porque você ques chamar um model dentro de
> outro
> > > > model?
> > > > > > > > > > >
> > > > > > > > > > > On Dec 5, 2007 3:34 AM, Cleyverson Costa
> > > > > > > > > > > < cleyversoncosta em gmail.com
> > > > > > > > > > <mailto: cleyversoncosta em gmail.com >
> > > > > > > > > > <mailto: cleyversoncosta em gmail.com
> > > > > > > > >
> > > > > > > > > > <mailto: cleyversoncosta em gmail.com >>> wrote:
> > > > > > > > > > >
> > > > > > > > > > > Pessoal,
> > > > > > > > > > >
> > > > > > > > > > > Eu estou dentro de uma função em um model X
> e
> > > > quero
> > > > > > > > > > chamar uma
> > > > > > > > > > > função do model Y.
> > > > > > > > > > >
> > > > > > > > > > > Existe alguma restrição do CI qto a isso??
> > > > > > > > > > >
> > > > > > > > > > > Abraços
> > > > > > > > > > >
> > > > > > > > > > > --
> > > > > > > > > > > Cleyverson Pereira Costa
> > > > > > > > > > > Bacharel em Ciência da Computação FAESA
> > > > > > > > > > > Residente em Engenharia de Testes CIn-UFPE
> > > > > > > > > > >
> > > > > > >
> > > > ----------------------------------------------------------
> > > > > > > > > > > Tel.: (81) 8785-1289
> > > > > > > > > > >
> > > > > > > _______________________________________________
> > > > > > > > > > > Lista mailing list
> > > > > > > > > > > Lista em codeigniter.com.br
> > > > > > > > > > <mailto: Lista em codeigniter.com.br> <mailto:
> > > > > > > Lista em codeigniter.com.br
> > > > > > > > >
> > > > > > > > > > <mailto: Lista em codeigniter.com.br>>
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > > > <
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > --
> > > > > > > > > > > Atenciosamente,
> > > > > > > > > > >
> > > > > > > > > > > Osdeni José Sadzinski
> > > > > > > > > > > E-mail: osdeni em gmail.com <mailto:
> osdeni em gmail.com>
> > > > <mailto:
> > > > > > > > >
> > > > > > > > > > osdeni em gmail.com <mailto:osdeni em gmail.com >>
> > > > > > > > > > > MSN: osdeni em hotmail.com
> <mailto:osdeni em hotmail.com >
> > > > > > > > > > <mailto: osdeni em hotmail.com <mailto:
> osdeni em hotmail.com>>
> > > > > > > > >
> > > > > > > > > > >
> > > > > > > _______________________________________________
> > > > > > > > > > > Lista mailing list
> > > > > > > > > > > Lista em codeigniter.com.br <mailto:
> > > > Lista em codeigniter.com.br >
> > > > > > > > > > <mailto: Lista em codeigniter.com.br <mailto:
> > > > > > > Lista em codeigniter.com.br>>
> > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > --
> > > > > > > > > > > Cleyverson Pereira Costa
> > > > > > > > > > > Bacharel em Ciência da Computação FAESA
> > > > > > > > > > > Residente em Engenharia de Testes CIn-UFPE
> > > > > > > > > > >
> > > > > > >
> > > > ----------------------------------------------------------
> > > > > > > > > > > Tel.: (81) 8785-1289
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > >
> > > >
> ------------------------------------------------------------------------
> > > > > > > > > > >
> > > > > > > > > > >
> > > > _______________________________________________
> > > > > > > > > > > Lista mailing list
> > > > > > > > >
> > > > > > > > > > > Lista em codeigniter.com.br <mailto:
> Lista em codeigniter.com.br
> > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > >
> > > > <http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > _______________________________________________
> > > > > > > > > > Lista mailing list
> > > > > > > > > > Lista em codeigniter.com.br <mailto:
> Lista em codeigniter.com.br >
> > > > > > > > > >
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Cleyverson Pereira Costa
> > > > > > > > > > Bacharel em Ciência da Computação FAESA
> > > > > > > > > > Residente em Engenharia de Testes CIn-UFPE
> > > > > > > > > >
> > > > > > >
> > > > ----------------------------------------------------------
> > > > > > > > > > Tel.: (81) 8785-1289
> > > > > > > > > >
> > > > > > >
> > > >
> ------------------------------------------------------------------------
> > > > > > > > > >
> > > > > > > > > > _______________________________________________
> > > > > > > > > > Lista mailing list
> > > > > > > > > > Lista em codeigniter.com.br
> > > > > > > > > >
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > _______________________________________________
> > > > > > > > > Lista mailing list
> > > > > > > > > Lista em codeigniter.com.br
> > > > > > > > >
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Atenciosamente,
> > > > > > > >
> > > > > > > > Osdeni José Sadzinski
> > > > > > > > E-mail: osdeni em gmail.com
> > > > > > > > MSN: osdeni em hotmail.com
> > > > > > > > _______________________________________________
> > > > > > > > Lista mailing list
> > > > > > > > Lista em codeigniter.com.br
> > > > > > > >
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > Lista mailing list
> > > > > > > Lista em codeigniter.com.br
> > > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > Lista mailing list
> > > > > > Lista em codeigniter.com.br
> > > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > Lista mailing list
> > > > > Lista em codeigniter.com.br
> > > > >
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Daniel Costa
> > > > ::. http://danielcosta.info
> > > > _______________________________________________
> > > > Lista mailing list
> > > > Lista em codeigniter.com.br
> > > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > > >
> > > >
> > >
> > > _______________________________________________
> > > Lista mailing list
> > > Lista em codeigniter.com.br
> > > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> > >
> >
> >
> > _______________________________________________
> > Lista mailing list
> > Lista em codeigniter.com.br
> > http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >
> >
>
>
>
> --
> Daniel Costa
> ::. http://danielcosta.info
> _______________________________________________
> Lista mailing list
> Lista em codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
>
--
Flávio Zaca
Analista Desenvolvedor Web
Graduando - Computação - UnB
http://webdev10.blogspot.com
Mais detalhes sobre a lista de discussão Lista