Codeigniter e conceitos de OOP

141 views
Skip to first unread message

Brunno dos Santos

unread,
Apr 1, 2011, 10:54:57 AM4/1/11
to php-b...@googlegroups.com
Fala galera beleza?!

Gostaria de propor um debate sobre um assunto que tem me deixado no minimo intrigado. Comecei a desenvolver usando o Codeigniter, pois eu queria conhecer um framework e já tinha alguns amigos que usam o CI e isso ia me ajudar nas dúvidas, porem dei de encontro com várias inconsistencias de conceitos que o framework utiliza.

Vou começar o email dizendo que não sou expert em OOP, mas conheço o suficiente para questionar algumas coisas, vamos lá.

Eu acredito que o modo como o CI trata seus modelos não é o modo correto na visão de OOP, visto que ele não tem a visão de entidade para esses modelos, me parece que ele trata todos os modelos como objetos de acesso a dados, como se fossem DAOs mesmo, mas isso me traz algum incomodo, pois qualquer função de um modelo não me retorna um objeto do tipo que eu espero, e sim um objeto que é um espelho do banco de dados, é que eu estivesse trabalhando orientado a banco de dados hehehe.

Eu aprendi o conceito de OOP com uma linguagem de tipagem forte, será que é por isso que estou com algumas dificuldades de modelar os dados no PHP?? Vocês usam entidades em seus projetos PHP OOP??

Se alguém aqui trabalha ou já trabalhou com o CI pode me ajudar a exclarecer essas dúvidas de como trabalhar com entidades, ou simplesmente me dizer que trabalhar com entidades é furada ou algo assim hehehe.

Valew galera.

Brunno dos Santos

Back-End Developer
11 - 7666-4358


abstraindo.com | Extensões Para Firefox | @squiter

Ninetails - Carlos Kazuo

unread,
Apr 1, 2011, 2:35:20 PM4/1/11
to php-b...@googlegroups.com
bom, ae não entram só idéias de OOP mas também sobre MVC e RAD


o CI é um framework que aplica MVC e dae segue o que vem desde a popularização do Ruby on Rails com RAD (bom, não sei se realmente começou com RoR isso)

o model destes frameworks MVC geralmente seguem o padrão Active Record:


e isso tudo virou meio que um padrão, uma segunda linguagem... tal como jQuery é visto como jQuery e não javascript.

bom, não entendi muito bem a tua colocação (por não ter entendido talvez o que escreveste, talvez com exemplos ficaria mais claro)

espero ter ajudado na discussão

--------------------------------------------------
/**
 * @author Ninetails - Carlos Kazuo <ninetails.nine [at] gmail.com>
 */


2011/4/1 Brunno dos Santos <squi...@gmail.com>

--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.

Brunno dos Santos

unread,
Apr 1, 2011, 3:29:41 PM4/1/11
to php-b...@googlegroups.com, Ninetails - Carlos Kazuo
Entendi Carlos, na verdade então por esses frameworks focarem em Agile ou XP para tornar o desenvolvimento mais rapido eles não aplicam alguns conceitos que, pra eles, só tornariam o desenvolvimento mais lento.



Brunno dos Santos

Back-End Developer
11 - 7666-4358


abstraindo.com | Extensões Para Firefox | @squiter



2011/4/1 Ninetails - Carlos Kazuo <ninetai...@gmail.com>

Rodrigo Mendonça

unread,
Apr 1, 2011, 3:57:57 PM4/1/11
to php-b...@googlegroups.com
A verdade é que usando frameworks nosso trabalho é simplesmente sair preenchendo os arquivos... Programar orientado a objeto não é nada fácil, e os frameworks diminuem essa complexidade pra gente. Facilitando muito nosso trabalho.. eu gosto =D
Rodrigo Mendonça
(62) 8567-3142

Felipe Djinn

unread,
Apr 1, 2011, 6:58:26 PM4/1/11
to php-b...@googlegroups.com
Acho que a questão não são TODOS os frameworks, o ZF por exemplo aplica diversos design patterns, boas práticas etc....
Não quer dizer que utilizando framework vc está programando OO....no CI, por exemplo, não tenho esta sensação...e por isso não seu muito fã de utilizar o CI... no Kohana, no Zend eu tenho esta sensação, eles meio que "te obrigam" a "programar direito" e tals...acho que fica bem mais bacana...

O CI peca em vários princípios OO...o que ele fala que é Active Record é brincadeira....
Vou parar por aqui se não vou parecer anti-CI hehehehhe

Comentei sobre o Kohana e ZF pq foram os que tive contato, não posso dizer a respeito do Symfony nem do CakePHP..

[]'s

felipe moraes

unread,
Apr 1, 2011, 7:08:06 PM4/1/11
to php-b...@googlegroups.com
Eu tinha desistido de postar .. mas concordo com meu Xará

O Ci é um bom framework, e adequado a algumas situações devido a sua simplicidade .. Tem extensões boas, como CMSs .. mas peca nos patterns, e nos tutoriais .. quando se pensa em boas práticas.

O Model com Database ativado, é como comentaram, uma Intercade de banco ..
Se você quiser um ORM mais elaborado, como o do Kohana e Cake ..
Se quiser implementar alguns patterns mais antigos como o DAO + VO .. vc tem de adequar às convenções

Para projetos mais complexos .. prefiro o Kohana .. que é muito bom, mas muito mais simples e eficiente que o Cake

Apenas postei minha opinião, se não concorda .. fique à vontade para fazer comentários, não deixando de lado o bom senso .. Discussões sadias são muito bem vindas :D


--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.



--
http://felipebastosweb.com.br
http://twitter.com/felipebastosweb

felipe moraes

unread,
Apr 1, 2011, 7:09:05 PM4/1/11
to php-b...@googlegroups.com
Errata:
Intercade -> Interface ..

Rodrigo Mendonça

unread,
Apr 1, 2011, 7:11:31 PM4/1/11
to php-b...@googlegroups.com
Realmente o CI peca fudido nisso... pra fazer um controller herdar de outro é só a dor de cabeça...
Eu conheço somente o CI e o Rails e posso afirmar que a diferença é colossal

--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.



--
Rodrigo Mendonça
(62) 8567-3142

Ninetails - Carlos Kazuo

unread,
Apr 1, 2011, 9:05:48 PM4/1/11
to php-b...@googlegroups.com
ah pra mim é tudo igual UEAHUAEHUAE (só pra causar) -q

mintira uaehuah


ah bom, já falei +/- o que eu acho... mas como eu disse lá em cima, pra mim são frameworks voltados a MVC e derivados (HMVC etc)...

- Kohana
- Code Igniter
- CakePHP

só não sei do Symfony pq lembro que ele é meio voltado a plugins, e como nunca desenvolvi nele também não sei... e menos ainda da nova versão 2.0

mas até o Zend Framework, se fossem só a Zend_Application (acho que é isso... se não me engano) ele mesmo também tem uma parte do framework dedicada ao MVC... bom, mas como eu disse: também não sei o que seria realmente programar em Orientação a Objetos como foi perguntado... Pq a maioria usa Design Patterns e geralmente viram um tipo de objeto específico (para ser mais claro, especializado) e, em termos, não deixa de ser objeto... ou não?

--------------------------------------------------
/**
 * @author Ninetails - Carlos Kazuo <ninetails.nine [at] gmail.com>
 */


2011/4/1 Rodrigo Mendonça <den...@gmail.com>

Rodrigo Mendonça

unread,
Apr 1, 2011, 9:17:15 PM4/1/11
to php-b...@googlegroups.com
Até onde eu acho que sei são objetos ainda.. mas a gente só preenche eles, o que é uma maravilha.
No rails já tão tomando o conta até dos métodos dos controllers.. com essa moda de REST pegando já tão mandando até nos nossos controllers (temos a opção de deixar livre claro)... São uns 10 métodos lá que qualquer controller gostaria de ter... Aí já tem plugin que implementa esses 10 métodos e os controllers ficam com 2 ou tres linhas.. rs

Adoro frameworks e plugins

Brunno dos Santos

unread,
Apr 1, 2011, 7:22:19 PM4/1/11
to php-b...@googlegroups.com
Hmmm era esse tipo de resposta que eu estava esperando galera!!
Uma coisa nesses email me chamou a atenção, quer dizer que o Zend me força a programar direito?! É exatamente isso que tenho procurado, se for isso mesmo acho que vou testá-lo...

Muito obrigado galera, a opinião de vcs foi de grande valia pra mim ;)


Brunno dos Santos

Back-End Developer
11 - 7666-4358


abstraindo.com | Extensões Para Firefox | @squiter



2011/4/1 Rodrigo Mendonça <den...@gmail.com>

Brunno dos Santos

unread,
Apr 2, 2011, 5:50:34 PM4/2/11
to php-b...@googlegroups.com
Então Carlos, eles não deixam de ser objetos mesmo, porem com eles a gente não tem as entidades de cada parte do projeto, o que nos deixa longe daquele conceito de programar mais proximo da vida real, de que os objetos devem ter atributos e bla bla bla, foi isso que me deixou um pouco confuso quando comecei...


Brunno dos Santos

Back-End Developer
11 - 7666-4358


abstraindo.com | Extensões Para Firefox | @squiter



2011/4/1 Rodrigo Mendonça <den...@gmail.com>

felipe moraes

unread,
Apr 3, 2011, 10:17:42 AM4/3/11
to php-b...@googlegroups.com
Brunno

Nunca se prenda a paradigmas .. :D

Com ORM vc vai prgramar do jeito que está falando, mas em outra camada .. exemplo:

$cliente = ORM::factory('cliente');
$cliente->nome = 'Nome';
$cliente->sobrenome = 'Sobrenome';
$cliente->nascimento = '01/01/2001';

$cliente->save();

Existe coisa mais prática ?

Suissa

unread,
Apr 3, 2011, 9:00:31 PM4/3/11
to php-b...@googlegroups.com
Existe, passar um array q vem la da view sem precisar setar nenhuma variavel.

2011/4/3 felipe moraes <feli...@gmail.com>



--
Jean C. Nascimento aka Suissa
Professor - FAFIT - Itararé - SP
Especializando em Desenvolvimento Web

NoSQL Evangelist - nosqlbr.com.br/
iGrape Coordenador PHP - igrape.org/
TheWebMind Evangelist - thewebmind.org/

      



felipe moraes

unread,
Apr 3, 2011, 9:10:53 PM4/3/11
to php-b...@googlegroups.com
Aí vc abusa .. rsrsrs

particularmente, não gosto do tipo:

$post = Validation::factory($_POST)->filter(regras);
$cliente->set($post);

O fato de você não saber do lixo que virá via POST me incomoda .. só passo o indispensável :D Sem falar nas boas práticas ...

E foge a proposta do cara .. que é enxergar o objeto o mais próximo do caso real :D

Brunno dos Santos

unread,
Apr 3, 2011, 7:02:52 PM4/3/11
to php-b...@googlegroups.com
Pois é Felipe, mas é complicado separar as coisas quando se está começando a aprender tecnincas que já são amplamanete difundidas, ainda mais quando todo mundo fala de orientação a objetos e ninguem sabe o que é um design pattern...
Troquei ideia com muitas pessoas a respeito dessas minhas duvidas de como o CI funcionava porque estou fazendo o TCC do meu curso com ele, e eu precisava falar a respeito, mas mesmo muita gente que usa o CI nem sabe como ele funciona...

Fiquei contente de abrir esse topico aqui e todos vocês terem respondido, achei um debate interessante que me acrescentou muito, muito obrigado galera! ;)


Brunno dos Santos

Back-End Developer
11 - 7666-4358


abstraindo.com | Extensões Para Firefox | @squiter



2011/4/3 felipe moraes <feli...@gmail.com>

Ninetails - Carlos Kazuo

unread,
Apr 4, 2011, 12:24:13 AM4/4/11
to php-b...@googlegroups.com
opa tamos ae =D




(pra conversa além que já surgiu aueheauhae)

aliás.. acho válido sim vir direto do post, valido e salvo
afinal, validação existe pra isso ;D
se vc n confia nos validadores default, e vc ia fazer na mão de qualquer jeito, é só adaptar esse código pra um validador e dá na mesma ueahuaeh
e ainda dá pra reusar o código caso algum dia precise do mesmo validador

--------------------------------------------------
/**
 * @author Ninetails - Carlos Kazuo <ninetails.nine [at] gmail.com>
 */


2011/4/3 Brunno dos Santos <squi...@gmail.com>

Felipe Djinn

unread,
Apr 4, 2011, 11:38:36 AM4/4/11
to php-b...@googlegroups.com
Não é que ele te força...mas lhe mostra um caminho mais organizado, mais padronizado etc....

Mas independente do framework que vc vai utilizar, depende muito mais de como vc programa do que o fw em si...

[]'s

Suissa

unread,
Apr 4, 2011, 2:40:41 PM4/4/11
to php-b...@googlegroups.com
Nao uso o $_POST direto, o certo eh criar um array apos as validacoes necessarias e pimba! =D

2011/4/3 felipe moraes <feli...@gmail.com>
Reply all
Reply to author
Forward
0 new messages