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…

Logo do CodeIgniterAté 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.

6 Comentários

  1. Alexandre escreveu em 10 de dezembro de 2007 as 08:44:

    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!

  2. samarone lopes escreveu em 15 de dezembro de 2007 as 14:30:

    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"];
    }
    }
    }
    }

    }

  3. Felipe Diesel escreveu em 15 de dezembro de 2007 as 18:54:

    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.

  4. Tulio Faria escreveu em 08 de janeiro de 2008 as 18:26:

    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!

  5. Felipe Diesel escreveu em 08 de janeiro de 2008 as 19:38:

    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. :D

    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

  6. Tulio Faria escreveu em 08 de janeiro de 2008 as 21:43:

    É 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,..

Deixe seu comentário