[CodeIgniter] Chamar model dentro de model
Newton Wagner
newtonweb em gmail.com
Quinta Dezembro 6 15:51:55 BRST 2007
Perfeito.
Quando se trata de projetos, existem diversos fatores que influenciam
nisso, e eu entendo perfeitamente caso você precise passar por cima de
padrões e best practices por causa do curto prazo.
Mas eu discordo quando você diz que tem prazo pra nascer e morrer. :).
Amanhã você pode reaproveitar este sistema em outro hotsite e etc. E
talvez você sofra um pouco do que sofremos por aqui. rs. Você
subestimou o crescimento deste teu software.
Fazer com baixa qualidade por causa do curto prazo não é subestimar o
crescimento do software, é assumir o risco de que, caso ele precise
crescer, você pode encontrar dificuldades de adaptá-lo à sua nova
realidade. E muitas vezes temos que conviver com estes riscos, e até
outros piores. heheheh.
--
Newton Wagner
skype: newtonwagner
msn/gtalk: newtonweb em gmail.com
http://www.newtonwagner.net/blog
- http://www.owshit.com.br/
Em 06/12/07, Flavio 'Zaca' Diniz<zaca10 em gmail.com> escreveu:
> Brother, se trata de um CMS para um hotsite, que tem data e hora pra
> morrer. Acredite em mim, eu sei do que estou falando.
> Eu procuro sempre fazer da melhor maneira possível, mas dentro do
> prazo. Principalmente quando não sou eu quem dá os prazos. Se é
> possível, eu faço, se não, faço da melhor maneira na medida do
> possível.
> Eu não posso é entregar um sistema que tem que ficar pronto em 3
> semanas em 3 meses, apenas para seguir todos os padrões da gang of
> four, ou que são recomendados por outras fontes.
>
> On Dec 6, 2007 3:00 PM, Newton Wagner <newtonweb em gmail.com> wrote:
> > Não existem regras. Estes padrões foram inventados, ou apenas
> > definidos pelo grupo dos 4 (se não me falha a memória), que
> > destrincharam os Design Patterns em um livro.
> >
> > Uma sugestão que eu faço é que, não importa o tamanho, faça sempre da
> > melhor maneira possível. Hoje eu sou analista de 2 sistemas que
> > nasceram da mesma forma como você descreveu: "Eu só quero resolver
> > este probleminha, esse sistema não vai crescer, só eu vou manter então
> > eu faço aqui como for mais fácil".
> >
> > Hoje temos uma equipe de 10 pessoas pra fazer a manutenção no sistema,
> > e todos os dias nos somos lembrados de como poderíamos poupar muito
> > tempo caso o autor do sistema, na época do desenvolvimento, tivesse se
> > atentado a detalhes e padrões de projeto. :).
> >
> >
> > Nunca subestimem o crescimento de um software. Hoje é um CMS, amanhã é
> > CMS+Blog, depois de amanhã é CMS+Blog+E-Commerce.. e por aí vai. :).
> >
> >
> > --
> > Newton Wagner
> >
> > skype: newtonwagner
> > msn/gtalk: newtonweb em gmail.com
> >
> > http://www.newtonwagner.net/blog
> > - http://www.owshit.com.br/
> >
> >
> > Em 06/12/07, Flavio 'Zaca' Diniz<zaca10 em gmail.com> escreveu:
> >
> > > Eu particularmente tenho vivido uma situação interessante aqui
> > > utilizando o CI. Estou montando um CMS para um site, relativamente
> > > simples. Em vários casos, as ações são tão simples, que simplesmente
> > > não justifica que eu utilize a camada de Model. No meu caso, realizar
> > > a implementação das ações da Model na Controladora é pelo menos duas
> > > vezes mais simples e rápido do que utilizar a Model para tal.
> > >
> > > Por exemplo, resolvo com duas linhas de active record a ação a ser
> > > realizada na Model, direto na Controladora, e já chamo a View. Lógico,
> > > isso não acontece em todas as situações. Mas como se trata de um
> > > sistema com um prazo bem curto, e, principalmente, que não tem a
> > > mínima necessídade de escalar, e que terá uma manutenção muito
> > > simples, eu resolvi optar por esta alternativa, já que o CI
> > > possibilita isto.
> > >
> > > Mas sobre o assunto geral da thread, realmente, depois destas
> > > discussões eu estou em dúvida sobre qual seria o melhor lugar para as
> > > regras de negócio. No meu caso aqui, estou utilizando-as nas
> > > Controladoras, por pura conveniência.
> > >
> > > Existe um padrão internacional para MVC? Sei lá, um ISO para tal? Ou
> > > se tratam apenas de recomendações ou práticas gerais?
> > >
> > > On Dec 6, 2007 2:41 PM, Newton Wagner <newtonweb em gmail.com> wrote:
> > > > Marco,
> > > >
> > > > Adicionar inteligência ao modelo não te impede de migrar a aplicação
> > > > de banco. O que você não deve fazer é escrever as próprias querys.
> > > >
> > > > Se você validar os dados no modelo antes de inserir, vai fazê-lo em
> > > > qualquer banco, o que vai mudar é o driver de conexão e a montagem da
> > > > query, que o framework faz automaticamente no caso do Active Record.
> > > >
> > > >
> > > > Mais uma vez acho que estão confundindo as coisas. :).
> > > >
> > > >
> > > > --
> > > > Newton Wagner
> > > >
> > > > skype: newtonwagner
> > > > msn/gtalk: newtonweb em gmail.com
> > > >
> > > > http://www.newtonwagner.net/blog
> > > > - http://www.owshit.com.br/
> > > >
> > > >
> > > > Em 06/12/07, Marco Telles<contato em pierdeipanema.com.br> escreveu:
> > > >
> > > > > O que entendo pelo MVC é "cada macaco no seu galho" :-)
> > > > >
> > > > > Então, quanto menos interferência nos models, mais fácil migrar para
> > > > > outras bases, e isso é inclusive o principal propósito do Active Record,
> > > > > permitir a fácil integração de nosso projeto com outras tecnologias de
> > > > > dados.
> > > > >
> > > > > Eu por exemplo procuro usar o controller como o próprio nome sugere,
> > > > > controlando tudo. Evito ao máximo colocar regras no models. Bem como
> > > > > código nas views.
> > > > >
> > > > > Por outro lado, uma coisa que aprendi também com os anos é que toda
> > > > > regra tem sua exceção e toda unanimidade é burra (pois é demorei para
> > > > > aprender isso, rs), já dizia Nelson Rodrigues, então regras são ótimas e
> > > > > imprenscindíveis, porém bom senso tem seu valor também. Se para seguir
> > > > > regras e padrões eu preciso escrever trocentas linhas de código quando
> > > > > poderia ser feita com algumas linhas, fora dos padrões, a segunda opção
> > > > > é bastante convidativa. Obviamente, desde que isso não acarrete em
> > > > > problemas futuros ou implique em falhas na estrutura geral.
> > > > >
> > > > >
> > > > > Muita sorte para nós!
> > > > >
> > > > > Marco Telles
> > > > >
> > > > > #############
> > > > > # Pier de Ipanema ( http://www.pierdeipanema.com.br/ )
> > > > > # X-Trad Traduções BR ( http://www.x-trad.org/ )
> > > > > # CodeIgniter PHP framework ( http://www.codeigniter.com.br/ )
> > > > > # Ubuntu The power of free software ( http://www.ubuntu-br.org/ )
> > > > > # Python Programming Language ( http://www.pythonbrasil.com.br/ )
> > > > >
> > > > >
> > > > >
> > > > > Marcus Cavalcanti escreveu:
> > > > > > O ideal é o controller ser o mais magro e enxuto possível .. ser o
> > > > > > meio de campo ente modelo ->view
> > > > > >
> > > > > > Validações são feitas em controller .. nunca em modelo, mas validações
> > > > > > não são regras de negócio .. além do que vc pode ter uma classe só pra
> > > > > > validar .. eu faço isso usando hook, como filters no struts e
> > > > > > interceptors no webwok.
> > > > > >
> > > > > > Leituras:
> > > > > >
> > > > > > http://www.martinfowler.com/bliki/AnemicDomainModel.html
> > > > > > http://www.webdoispontozero.com/blog/?p=75
> > > > > > <http://www.webdoispontozero.com/blog/?p=75>
> > > > > > http://fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs
> > > > > >
> > > > > > Se todos puderem ler, seria interessante, para podermos debater idéias
> > > > > > em um mesmo contexto.
> > > > > >
> > > > > > On Dec 6, 2007 12:29 PM, Marcus Cavalcanti
> > > > > > <marcus.cavalcanti em gmail.com <mailto:marcus.cavalcanti em gmail.com>> wrote:
> > > > > >
> > > > > > Toda questão que é conceitual condiciona a N interprertações
> > > > > > diferentes .. normal
> > > > > >
> > > > > > Queria saber o que vcs entendem como regra de negócio .. a
> > > > > > propósito, alguém conhece o pattern DAO?
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Dec 6, 2007 11:53 AM, Cleyverson Costa
> > > > > > <cleyversoncosta em gmail.com <mailto:cleyversoncosta em gmail.com>> wrote:
> > > > > >
> > > > > > O que por exemplo vcs validam na model??
> > > > > >
> > > > > > Nao estou exergando nada de extra que me faça validar algo na
> > > > > > model.
> > > > > >
> > > > > > Abraços
> > > > > >
> > > > > > Em 06/12/07, *Cleyverson Costa * <cleyversoncosta em gmail.com
> > > > > > <mailto:cleyversoncosta em gmail.com>> escreveu:
> > > > > >
> > > > > > Hmm
> > > > > >
> > > > > > Ummm eu faço a validação no controller...acho q fica mais
> > > > > > enxuto a model.
> > > > > >
> > > > > > Em 06/12/07, *Newton Wagner* < newtonweb em gmail.com
> > > > > > <mailto: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
> > > > > > <mailto:newtonweb em gmail.com>
> > > > > >
> > > > > > http://www.newtonwagner.net/blog
> > > > > > - http://www.owshit.com.br/
> > > > > >
> > > > > >
> > > > > > Em 06/12/07, Daniel Costa< danielcosta em gmail.com
> > > > > > <mailto: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 <mailto: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
> > > > > > <mailto: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
> > > > > > <mailto: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 <mailto: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
> > > > > > <mailto: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>
> > > > > > > > > > > > > <mailto: 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/
> > > > > > <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>>
> > > > > > > > > > > > > > <mailto: 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> >
> > > > > > > > > > > > > <mailto: 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>> <mailto:
> > > > > > > > > > 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>>
> > > > > > > <mailto:
> > > > > > > > > > > >
> > > > > > > > > > > > > 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> >
> > > > > > > > > > > > > <mailto: 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> >
> > > > > > > > > > > > > <mailto: 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> <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>
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > >
> > > > > > > <
> > > > > > 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> <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>
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > --
> > > > > > > > > > > > > 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
> > > > > > <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>
> > > > > > > > > > > MSN: osdeni em hotmail.com
> > > > > > <mailto:osdeni em hotmail.com>
> > > > > > > > > > > _______________________________________________
> > > > > > > > > > > Lista mailing list
> > > > > > > > > > > Lista em codeigniter.com.br
> > > > > > <mailto:Lista em 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
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > _______________________________________________
> > > > > > > > > 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
> > > > > > <http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br>
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Daniel Costa
> > > > > > > ::. http://danielcosta.info
> > > > > > > _______________________________________________
> > > > > > > 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
> > > > > > <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
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > >
> > > > > > 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
> > > > > >
> > > > > >
> > > > > >
> > > > > > ------------------------------------------------------------------------
> > > > > >
> > > > > > _______________________________________________
> > > > > > 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
> > > >
> > >
> > >
> > >
> > > --
> > > Flávio Zaca
> > > Analista Desenvolvedor Web
> > > Graduando - Computação - UnB
> > > http://webdev10.blogspot.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
> >
>
>
>
> --
> Flávio Zaca
> Analista Desenvolvedor Web
> Graduando - Computação - UnB
> http://webdev10.blogspot.com
>
> _______________________________________________
> Lista mailing list
> Lista em codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
Mais detalhes sobre a lista de discussão Lista