O Framework CodeIgniter
O que um framework tem que fazer? Sério, copiar o Rails?
Tudo bem que seja um om espelho, mas não pode ser feito com fé cega, acreditando que o que o rails faz é o que há de melhor pra se fazer. Não que RoR seja ruim, muito pelo contrário, mas existem vários frameworks imitando-o sem pensar um pouco.
Eu programo em PHP para viver, poderia mudar já que sou eu quem define isso, mas ainda só estou testando outras linguagens para a web. Recentemente resolvi que iria usar um framework para desenvolver, pleos motivos que todo mundo sabe: utilização de MVC, programação mais rápida, etc.
Cheguei a testar o CakePHP, mas não gostei dele pois ele te faz trabalhar como ele quer, não como o programador quer. Bati cabeça com mais alguns e resolvi que montaria meu próprio framework. Programa, programa, programa… Ainda falta muito pela frente…
Até que parei e conheci o CodeIgniter. Achei muito bom, é um framework legal e que me dava a liberdade que eu não tinha com o Cake.
Este framework, apesar de ter sido baseado no Rails, não o segue cegamente e dá um liberdade muito grande pra trabalhar do jeito que o programador quiser. Claro que ele tem uma padronização, mas a liberdade vem em você usar as ferramentas que são fornecidas muito facilmente.
Se você quer saber mais sobre o CodeIgniter, sugiro que veja os screencasts do Elliot Haughin, que foi o que me fez ver o que o CodeIgniter podia fazer; leia o blog do Derek Allard, que é um dos desenvolvedores do Framework; e LEIA O MANUAL. Em português, a comunidade ainda está se formando, mas já existe o site codeigniter.com.br, lá se encontra o manual traduzido, um fórum (que atualmente está fora do ar) e a lista de discussão.
Aguardem alguns artigos aqui sobre esse tema.
Há um tempo atrás eu também buscava um framework competente pra trabalhar. Os três principais candidatos foram o Cake, o CodeIgniter e o Zend Framework.
O Cake é fantástico, muito fácil e ágil.
O Zend Framework é bastante robusto, bem centrado no PHP5 e bem padronizado.
E o CodeIgniter me parecia a melhor opção, um “meio termo” entre o completo e o fácil.
Acabei desistindo dos três pra desenvolver meu próprio framework. Os três tem um grande defeito herdado do Rails:
Foco demais nos modelos de informação e mapeamento objeto-relacional
Foco de menos em sistemas de templates eficientes
Sistema de controllers confuso pra aplicações web, com vários esquemas de rotas complexos demais
Acabei por começar a desenvolver meu próprio framework visando solucionar esses problemas específicos, usando características únicas do PHP5. Já publiquei o beta no Google Code e estou prestes a lançar uma nova versão.
Abraços e boa sorte com o CodeIgniter!
Olá procurei rapidamente aqui seu email e não achei, clonei sua funcão de leitura das configurações do CIForm e pensei que talvez vc pudesse incluir em sua biblioteca. Essa função recebe as configurações do form através de um array, em preferencia a arquivos de configuração. Segue:
/**
* Load from array arguments the necessaries groups
* Set how many groups you want, but the first is the default group
*
*/
function configByArray( $fields = array() )
{
foreach (array_keys($fields) as $group) {
$this->config[$group] = $fields[$group];
$this->groups[] = $group;
$group_config = $this->_group_config($group);
foreach ($group_config as $field => $config) {
if (is_array($config)) {
if (isset($config["rule"])) {
$this->rules[$group . '_' . $field] = str_replace(’matches[','matches[' . $group . '_',$config["rule"]);
}
if (isset($config["label"])) {
$this->fields[$group . '_' . $field] = $config["label"];
}
}
}
}
}
Legal, samarone, porém já implementei isso, mas ainda não disponibilizei.
Estou fazendo um projeto com a biblioteca e quando estiver no fim deste, irei reescrever a biblioteca e liberar ela.
Olá Felipe,
todo mundo sabe que sou fã, usuário e divulgador do CakePHP, então vou defendê-lo
na verdade, meu ponto de vista sobre o porquê de usá-lo…
Um ponto crucial que você tocou foi sobre liberdade… Liberdade de organizar o código como bem entender é uma maravilha… Mas apenas na teoria…
Isso para quem trabalha em uma equipe pequena e/ou sozinho é muito bom… Mas quando deseja-se manter um código estável e bem organizado para o futuro, pode ser que a liberdade venha a atrapalhar.
Eu gosto da organização do código do CakePHP (e ROR, por tabela) e dela ser bem definida. Fazendo com que qualquer pessoa pegue o código e , após ler o manual e/ou tutoriais sobre o framework, consiga imediatamente trabalhar no projeto.
Sem isso, quem organizou o código teria que escrever um manual ou explicar para os novos integrantes da equipe…
Acho que dei uma “emabanada” para explicar meu ponto de vista, mas tá valendo…rs
Abraços e parabéns pelo blog!
Acho que meu problema com o Cake foi documentação.
Apesar de mexer bem pouco, gosto do Rails, mas com o Cake não consegui sair do chão.
Entendo o teu onto sobre trabalho em equipe, mas acredito que a liberdade tem q ser controlada. Algumas coisas tem que ser definidas antes. Por que senão vira zona…
Abraço
É a documentação do Cake não é das melhores, mas como diria o Snook.ca:
“Who needs documentation when it tells me how to do everything?” ou seja, em uma tradução livre: “quem precisa de documentação quando ele (CakePHP) lhe fala como fazer tudo?”…
Abraços,..