Mandei com outra thread... em um arquivo anexo, se alguem nao receber, me
avisa..

2009/2/6 Marcus Cavalcanti <[email protected]>

> Vou fazer aqui um exemplo e mando..
>
> 2009/2/6 Luciano Soares <[email protected]>
>
> Marcus vc poderia dar um exemplo usando aquele exemplo das cartas de como
>> vc implemente o Service Layer?
>>
>> Acho que seria de uma grande ajuda pro pessoal e poderia ser
>> disponibilizado no site do CI.
>>
>> Até mais.
>>
>> 2009/2/6 Marcus Cavalcanti <[email protected]>
>>
>>> Esse "scan" da revista diz bem o que estou querendo dizer e o inverso que
>>> o BambooInvoice faz.
>>>
>>>
>>> 2009/2/6 Marcus Cavalcanti <[email protected]>
>>>
>>>> Acadei dando um "send" sem querer, mas continuando..
>>>>
>>>> O cachorro que deve conhecer os seus métodos, se ele deve latir alto ou
>>>> baixo (regra d enegócio/validação) é ele quem deve conhecer e não a
>>>> aplicação, pois isso diz respeito ao cachorro e não a aplicação então qual
>>>> sentido de ter isso no controller?
>>>>
>>>> Quando você tem duas entidades, por exemplo, um método "enviarCarta"
>>>> você está dizendo respeito na verdade a duas entidades: carta e pessoa.
>>>> Pessoa pq alguém envia uma carta e nesse caso é uma pessoa, então vocês
>>>> devem estar se perguntando: Isso fica em qual das duas classes? A resposta 
>>>> é
>>>> nenhuma, isso deveria ficar em outra camada, na qual chamam de "Services
>>>> Layer" que é responsável por implementar isso.
>>>>
>>>> Essas questões divergem, tem várias oponiçoes, o negócio é tentar pensar
>>>> nas coisas como objetos. Sinceramente o MVC que o CI implementa não é um 
>>>> MVC
>>>> como foi proposto, o pattern mesmo, mas é como o CI implementa.
>>>>
>>>> Eu nunca tenha regras de negócio no meu controller, ou é no model ou
>>>> tenho uma camada a mais, conforme já citei.
>>>>
>>>> Esse é um bom assunto a ser discutido aqui e a propósito eu acho essa
>>>> app BambooInvoice um péssimo exemplo.
>>>>
>>>> 2009/2/6 Marcus Cavalcanti <[email protected]>
>>>>
>>>> hahaha adoro essas discussões...
>>>>>
>>>>> Pensando no MVC, o que o Luciano botou é o certo a ser feito.
>>>>>
>>>>> Controllers não devem ter regras de negócio da aplicação, controllers
>>>>> não conhecem isso, apenas direcionam a aplicação.
>>>>>
>>>>> Em OO purista e como deveria ser, segundo Domain Driven Design, as
>>>>> informações e regras de negócio de uma entidade deveriam dizer respeito a
>>>>> ela e não a um controller, lembre-se, aprendemos OO da seguinte forma:
>>>>>
>>>>> class Cachorro extends Mamifero {
>>>>>    public function latir() {
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> 2009/2/6 Eric Saboia (Fortes Informatica) <
>>>>> [email protected]>
>>>>>
>>>>>  Concordo,
>>>>>> Só complementando, regras genéricas como "validação, redimensionamento
>>>>>> de uma imagem, apuramento de dados e etc" devem sim ser utilizadas no 
>>>>>> Model,
>>>>>> porém, se não tem ligação direta com o domínio do model em questão, podem
>>>>>> ficar separadas em um helper ou library.
>>>>>>
>>>>>> Não faz muito sentido você dar load em um Model diferente do domínio
>>>>>> atual, só pra aproveitar algum método, melhor é deixar essas regras
>>>>>> encapsuladas e chamar diretamente dentro de cada Model necessário.
>>>>>>
>>>>>> Mas isso já diz mais respeito a DDD do que ao MVC em si (eu acho), e é
>>>>>> claro, como tudo que estudamos, é sempre uma sugestão de boa conduta de
>>>>>> desenvolvimento, não estou dizendo que é uma regra ;)
>>>>>>
>>>>>>   ----- Original Message -----
>>>>>>  *From:* Ricardo Valfreixo <[email protected]>
>>>>>> *To:* CodeIgniter Brasil <[email protected]>
>>>>>> *Sent:* Friday, February 06, 2009 5:57 AM
>>>>>> *Subject:* Re: [CodeIgniter] MVC de verdade
>>>>>>
>>>>>>
>>>>>> Não existe um papel claro escrito na pedra. Existem ferramentas e
>>>>>> práticas. De uma forma geral , é apenas bom senso. O CI é fabuloso porque
>>>>>> nos dá liberdade para fazermos a aplicação da forma que quisermos. E é 
>>>>>> mau
>>>>>> porque nos dá liberdade para fazermos a aplicação da forma que quiseres
>>>>>> eheheh.
>>>>>>
>>>>>> Com o codeigniter não precisas sequer de usar models e views. Pode
>>>>>> simplesmente usar controllers, fazer chamadas directas ao banco de dados 
>>>>>> e
>>>>>> produzir echos para visualização. No entanto estão lá as outras 
>>>>>> estruturas
>>>>>> para nos ajudar a vida.
>>>>>>
>>>>>> Colocar código nos models é uma boa ideia por muitos motivos. Mas vou
>>>>>> dar apenas um para te por a pensar. Se quiseres reutilizar um código (um
>>>>>> qualquer, validação, redimensionamento de uma imagem, apuramento de 
>>>>>> dados,
>>>>>> etc) onde é mais simples de colocar para ser utilizado em qualquer lado?
>>>>>>
>>>>>> Se for no controlador, terá de usar copy/paste para reproduzir.
>>>>>> Enquanto se estiver num model é apenas fazer load do model e usar o 
>>>>>> método.
>>>>>>
>>>>>> Para mim e cada vez mais para os utilizadores de arquitecturas MVC a
>>>>>> regra é deixar os controladores o mais magro possível e deixar os models
>>>>>> engordar à vontade.
>>>>>>
>>>>>> Agora a decisão é sempre tua :)
>>>>>>
>>>>>> //Zen
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2009/2/5 Eric Saboia (Fortes Informatica) <
>>>>>> [email protected]>
>>>>>>
>>>>>>> Cara, eu lembro que já foi discutido sim, mas não especificamente
>>>>>>> sobre o MVC, tanto que pra mim (e pelo visto pra maioria aqui) não havia
>>>>>>> ficado claro o papel de cada camada.
>>>>>>>
>>>>>>> ----- Original Message ----- From: "Newton Wagner" <
>>>>>>> [email protected]>
>>>>>>> To: "CodeIgniter Brasil" <[email protected]>
>>>>>>> Sent: Thursday, February 05, 2009 5:54 PM
>>>>>>>
>>>>>>> Subject: Re: [CodeIgniter] MVC de verdade
>>>>>>>
>>>>>>>
>>>>>>> E é por isso que alguns frameworks criam outra camada além do Model,
>>>>>>> a
>>>>>>> de Persistência. Aí fica mais bem separado ainda! :).
>>>>>>>
>>>>>>> Realmente essa discussão já foi abordada aqui na lista... quem quiser
>>>>>>> pode procurar no histórico.
>>>>>>>
>>>>>>>
>>>>>>> 2009/2/5 Cleyverson Costa <[email protected]>:
>>>>>>>
>>>>>>>> OK Valeu!
>>>>>>>>
>>>>>>>> 2009/2/5 Eric Saboia (Fortes Informatica) <
>>>>>>>> [email protected]>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Cleyverson,
>>>>>>>>> se você usa Active Record, teoricamente a mudança entre banco de
>>>>>>>>> dados é
>>>>>>>>> transparente. além disso, nada impede que você isole as querys das
>>>>>>>>> regas de
>>>>>>>>> negócio... da uma lida sobre DDD.
>>>>>>>>>
>>>>>>>>> Valeu!
>>>>>>>>>
>>>>>>>>> ----- Original Message -----
>>>>>>>>> From: Cleyverson Costa
>>>>>>>>> To: CodeIgniter Brasil
>>>>>>>>> Sent: Thursday, February 05, 2009 3:32 PM
>>>>>>>>> Subject: Re: [CodeIgniter] MVC de verdade
>>>>>>>>> Mas pensem, se eu colocar a validação dentro do model e quiser
>>>>>>>>> trocar o
>>>>>>>>> banco de dados...???
>>>>>>>>>
>>>>>>>>> Isso vai me dar uma grande dor d cabeça...
>>>>>>>>>
>>>>>>>>> Regra de negocio eu chamo de validações, ifs e elses etc que vai
>>>>>>>>> dizzer o
>>>>>>>>> que fazer...pra mim nao ta tendo logica isso ficar dentro do model.
>>>>>>>>>
>>>>>>>>> Abraços
>>>>>>>>>
>>>>>>>>> 2009/2/5 Eric Saboia (Fortes Informatica) <
>>>>>>>>> [email protected]>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Se os "criadores" do CI trabalham de forma errada, porque algum de
>>>>>>>>>> nós
>>>>>>>>>> faria diferente? Fiquei com a pulga atrás da orelha agora em
>>>>>>>>>> relação ao CI
>>>>>>>>>> :(
>>>>>>>>>>
>>>>>>>>>> ----- Original Message -----
>>>>>>>>>> From: Vinicius Cruz
>>>>>>>>>> To: CodeIgniter Brasil
>>>>>>>>>> Sent: Thursday, February 05, 2009 3:00 PM
>>>>>>>>>> Subject: Re: [CodeIgniter] MVC de verdade
>>>>>>>>>> Acho que aprendi tudo errado ... O_o
>>>>>>>>>> O sistema aqui do trampo tá igual ao Bamboo.
>>>>>>>>>>
>>>>>>>>>> 2009/2/5 Luciano Soares <[email protected]>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Mais informações
>>>>>>>>>>>
>>>>>>>>>>> http://java.sun.com/blueprints/patterns/MVC-detailed.html
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Participants & Responsibilities
>>>>>>>>>>>
>>>>>>>>>>> The MVC architecture has its roots in Smalltalk, where it was
>>>>>>>>>>> originally
>>>>>>>>>>> applied to map the traditional input, processing, and output
>>>>>>>>>>> tasks to the
>>>>>>>>>>> graphical user interaction model. However, it is straightforward
>>>>>>>>>>> to map
>>>>>>>>>>> these concepts into the domain of multi-tier enterprise
>>>>>>>>>>> applications.
>>>>>>>>>>>
>>>>>>>>>>> Model - The model represents enterprise data and the business
>>>>>>>>>>> rules that
>>>>>>>>>>> govern access to and updates of this data. Often the model serves
>>>>>>>>>>> as a
>>>>>>>>>>> software approximation to a real-world process, so simple
>>>>>>>>>>> real-world
>>>>>>>>>>> modeling techniques apply when defining the model.
>>>>>>>>>>> View -The view renders the contents of a model. It accesses
>>>>>>>>>>> enterprise
>>>>>>>>>>> data through the model and specifies how that data should be
>>>>>>>>>>> presented. It
>>>>>>>>>>> is the view's responsibility to maintain consistency in its
>>>>>>>>>>> presentation
>>>>>>>>>>> when the model changes. This can be achieved by using a push
>>>>>>>>>>> model, where
>>>>>>>>>>> the view registers itself with the model for change
>>>>>>>>>>> notifications, or a pull
>>>>>>>>>>> model, where the view is responsible for calling the model when
>>>>>>>>>>> it needs to
>>>>>>>>>>> retrieve the most current data.
>>>>>>>>>>> Controller - The controller translates interactions with the view
>>>>>>>>>>> into
>>>>>>>>>>> actions to be performed by the model. In a stand-alone GUI
>>>>>>>>>>> client, user
>>>>>>>>>>> interactions could be button clicks or menu selections, whereas
>>>>>>>>>>> in a Web
>>>>>>>>>>> application, they appear as GET and POST HTTP requests. The
>>>>>>>>>>> actions
>>>>>>>>>>> performed by the model include activating business processes or
>>>>>>>>>>> changing the
>>>>>>>>>>> state of the model. Based on the user interactions and the
>>>>>>>>>>> outcome of the
>>>>>>>>>>> model actions, the controller responds by selecting an
>>>>>>>>>>> appropriate view.
>>>>>>>>>>>
>>>>>>>>>>> 2009/2/5 Luciano Soares <[email protected]>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Bom nesse link da wikiedia em ingles explica o tradicional
>>>>>>>>>>>> modelo MVC
>>>>>>>>>>>> (que é diferente daquele implementado pelo CI devido as
>>>>>>>>>>>> restrições de não
>>>>>>>>>>>> criãção de observers em PHP)
>>>>>>>>>>>>
>>>>>>>>>>>> http://en.wikipedia.org/wiki/Model-view-controller
>>>>>>>>>>>>
>>>>>>>>>>>> As a design pattern
>>>>>>>>>>>>
>>>>>>>>>>>> MVC encompasses more of the architecture of an application than
>>>>>>>>>>>> is
>>>>>>>>>>>> typical for a design pattern.[citation needed]
>>>>>>>>>>>>
>>>>>>>>>>>> Model Is the domain-specific representation of the information
>>>>>>>>>>>> on which
>>>>>>>>>>>> the application operates. Domain logic adds meaning to raw data
>>>>>>>>>>>> (for
>>>>>>>>>>>> example, calculating whether today is the user's birthday, or
>>>>>>>>>>>> the totals,
>>>>>>>>>>>> taxes, and shipping charges for shopping cart items). Many
>>>>>>>>>>>> applications use
>>>>>>>>>>>> a persistent storage mechanism (such as a database) to store
>>>>>>>>>>>> data. MVC does
>>>>>>>>>>>> not specifically mention the data access layer because it is
>>>>>>>>>>>> understood to
>>>>>>>>>>>> be underneath or encapsulated by the model. View Renders the
>>>>>>>>>>>> model into a
>>>>>>>>>>>> form suitable for interaction, typically a user interface
>>>>>>>>>>>> element. Multiple
>>>>>>>>>>>> views can exist for a single model for different purposes.
>>>>>>>>>>>> Controller
>>>>>>>>>>>> Processes and responds to events (typically user actions) and
>>>>>>>>>>>> may indirectly
>>>>>>>>>>>> invoke changes on the model.
>>>>>>>>>>>>
>>>>>>>>>>>> 2009/2/5 Luciano Soares <[email protected]>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Controladores se preocupam apenas com o fluxo das operações
>>>>>>>>>>>>> dentro de
>>>>>>>>>>>>> um modelo MVC.
>>>>>>>>>>>>>
>>>>>>>>>>>>> O modelo é onde ficam as regras de negócio.
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2009/2/5 Cairo Noleto <[email protected]>
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> No Rails, os métodos de um controller são chamadas de actions,
>>>>>>>>>>>>>> que
>>>>>>>>>>>>>> realmente passam a ação do que se vai fazer, em um crud temos
>>>>>>>>>>>>>> as seguintes
>>>>>>>>>>>>>> ações:
>>>>>>>>>>>>>> Create, Read, Update e Destroy.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> no rails teríamos os seguintes métodos
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> def index
>>>>>>>>>>>>>> end
>>>>>>>>>>>>>> def new
>>>>>>>>>>>>>> end
>>>>>>>>>>>>>> def edit
>>>>>>>>>>>>>> end
>>>>>>>>>>>>>> def save
>>>>>>>>>>>>>> end
>>>>>>>>>>>>>> def destroy
>>>>>>>>>>>>>> end
>>>>>>>>>>>>>> def show
>>>>>>>>>>>>>> end
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Isso seria as ações da aplicação.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> "Um colaborador pode criar uma nova venda" sales/new
>>>>>>>>>>>>>> "Um colaborador pode vizualizar uma venda" sales/1/show
>>>>>>>>>>>>>> "Um colaborador pode editar uma venda" sales/2/edit
>>>>>>>>>>>>>> "Um colaborador pode excluir uma venda" sales/1/destroy
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Claro que isso é a grosso modo, hoje existe formas melhores de
>>>>>>>>>>>>>> se
>>>>>>>>>>>>>> fazer isso no rails usando o conceito de rest web service. Mas
>>>>>>>>>>>>>> idéia é
>>>>>>>>>>>>>> justamente essa, fazer com que um determinado controle
>>>>>>>>>>>>>> expresse apenas as
>>>>>>>>>>>>>> ações
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2009/2/5 Cleyverson Costa <[email protected]>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Eric,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> De tudo o que ja li, o uso correto é da seguinte forma:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Model >> Aqui tem basicamente as chamadas ao BD. Pense na se
>>>>>>>>>>>>>>> seguinte situação. Opa minha empresa vai mudar de banco de
>>>>>>>>>>>>>>> dados, entao as
>>>>>>>>>>>>>>> consultas SQL deverao ser modificadas. Se vc tiver no model
>>>>>>>>>>>>>>> apenas as
>>>>>>>>>>>>>>> chamadas ao banco, vc modifica apenas esta camada. Vc
>>>>>>>>>>>>>>> modifica os sql e todo
>>>>>>>>>>>>>>> o resto continua funcionando.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Controller >> Aqui ficam as regras de negocio e validações
>>>>>>>>>>>>>>> etc. Tudo
>>>>>>>>>>>>>>> fica aqui. Esta é sua camada de negocio.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> View >> Aqui fica a apresentação. Muita gente acaba colocando
>>>>>>>>>>>>>>> o
>>>>>>>>>>>>>>> utf8_encode/decode na view, mas acho que nao seria uma boa
>>>>>>>>>>>>>>> pratica. Quanto
>>>>>>>>>>>>>>> mais limpo vc puder deixar a view (usando o controller)
>>>>>>>>>>>>>>> melhor.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Depois de muito apanhar esta foi a forma que eu acabei
>>>>>>>>>>>>>>> achando como
>>>>>>>>>>>>>>> mais correta. Estou usando esta estrutura no site
>>>>>>>>>>>>>>> www.ezmatch.net caso
>>>>>>>>>>>>>>> queira dar uma olhada.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Abraços
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 2009/2/5 Eric Saboia (Fortes Informatica)
>>>>>>>>>>>>>>> <[email protected]>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Pessoal, pedi antes de ontem um exemplo de aplicação bem
>>>>>>>>>>>>>>>> feita em
>>>>>>>>>>>>>>>> CI, me indicaram o http://www.bambooinvoice.org/ . Eu
>>>>>>>>>>>>>>>> estava querendo checar
>>>>>>>>>>>>>>>> o uso do MVC dentro de uma aplicação em CodeIgniter, mas me
>>>>>>>>>>>>>>>> deparei com o
>>>>>>>>>>>>>>>> mesmo "erro" que julgava estar acontecendo aqui na empresa.
>>>>>>>>>>>>>>>> O controller tá
>>>>>>>>>>>>>>>> cheio de regras de negócio, assim como validações e etc.
>>>>>>>>>>>>>>>> Isso tudo não
>>>>>>>>>>>>>>>> deveria estar no Model? Pois até onde sei o modelo
>>>>>>>>>>>>>>>> representa tanto a
>>>>>>>>>>>>>>>> persistência, quanto o negócio, enquanto o Controller é
>>>>>>>>>>>>>>>> responsável
>>>>>>>>>>>>>>>> unicamente pelo fluxo da aplicação.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Opniões?
>>>>>>>>>>>>>>>> Eric Saboia
>>>>>>>>>>>>>>>> Desenvolvimento Web
>>>>>>>>>>>>>>>> Fortes Informática (Fortaleza)
>>>>>>>>>>>>>>>> Fone: (85) 4005-1111
>>>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>>>> www.grupofortes.com.br
>>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>>> Lista mailing list
>>>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>>> Lista mailing list
>>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Cairo Noleto
>>>>>>>>>>>>>> =========
>>>>>>>>>>>>>> Cairo'sBlog - http://www.caironoleto.com/
>>>>>>>>>>>>>> Web developer - Add4 Comunicação - http://www.add4.com.br/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> Lista mailing list
>>>>>>>>>>>>>> [email protected]
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Lista mailing list
>>>>>>>>>>> [email protected]
>>>>>>>>>>>
>>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> ________________________________
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Lista mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>>
>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Lista mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>>
>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> ________________________________
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Lista mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Lista mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Lista mailing list
>>>>>>>> [email protected]
>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Newton Wagner
>>>>>>>
>>>>>>> skype: newtonwagner
>>>>>>> msn/gtalk: [email protected]
>>>>>>>
>>>>>>> http://www.newtonwagner.net/
>>>>>>> - http://www.owshit.com.br/
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Lista mailing list
>>>>>>> [email protected]
>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Lista mailing list
>>>>>>> [email protected]
>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>
>>>>>>
>>>>>>  ------------------------------
>>>>>>
>>>>>> _______________________________________________
>>>>>> Lista mailing list
>>>>>> [email protected]
>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Lista mailing list
>>>>>> [email protected]
>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Marcus Cavalcanti
>>>>> 21 9144-5068
>>>>> www.marcuscavalcanti.net/blog
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Marcus Cavalcanti
>>>> 21 9144-5068
>>>> www.marcuscavalcanti.net/blog
>>>>
>>>
>>>
>>>
>>> --
>>> Marcus Cavalcanti
>>> 21 9144-5068
>>> www.marcuscavalcanti.net/blog
>>>
>>> _______________________________________________
>>> Lista mailing list
>>> [email protected]
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>>
>>
>> _______________________________________________
>> Lista mailing list
>> [email protected]
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>>
>
>
> --
> Marcus Cavalcanti
> 21 9144-5068
> www.marcuscavalcanti.net/blog
>



-- 
Marcus Cavalcanti
21 9144-5068
www.marcuscavalcanti.net/blog
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a