Newton Wagner

se desenvolvendo na web

Minhas impressões sobre o Kohana Framework

with 9 comments

Kohana Framework Logo

Alguns dias atrás, ouvi falar novamente do Kohana Framework, um fork do Code Igniter, feito por diversos usuários e entusiastas do CI que se sentiam órfãos por não poder ajudar no desenvolvimento do framework, já que a EllisLab é a única mantenedora do código.

O framework promete ser mais rápido, fácil de usar, de extender e, principalmente, “Strict PHP 5″, isto é, desenvolvido com todas as infinitas vantagens que a versão 5 do PHP tem em relação à 4. Como na minha opinião, a preocupação de manter compatibilidade com PHP 4 do CI impede a evolução do framework, achei melhor testar e escrevo aqui minhas impressões.

Comunidade

Quando vou analisar um framework novo, a primeira coisa que eu faço é ver se a comunidade é ativa, se existe um wiki ou fórum bem documentado. Lição aprendida depois de testar um bom framework, e só depois descobrir que até o fórum de desenvolvedores estava deserto.

A primeira impressão é que existe uma boa quantidade de usuários cadastrados e de mensagens no fórum. Os desenvolvedores parecem bastante ativos no fórum, e isso é um bom sinal.

Documentação

A documentação do Code Igniter é muito boa, bem acima da média. O Kohana tem uma documentação muito parecida, mas não muito bem adaptada à realidade dele. Os exemplos não utilizam o dito “Strict PHP 5″, e passam uma imagem distorcida da implementação e qualidade do framework.

É bem verdade que ainda são drafts, e a documentação está em fase de maturação, mas documentação é algo que faz muita falta quando queremos entender o funcionamento do framework.

Organização dos Arquivos

O Kohana já vem com a aplicação e o Core separados “de fábrica”, ao contrário do Code Igniter. Outra diferença é que, com a excessão de um arquivo de configuração da aplicação, todos os arquivos de configuração foram para a pasta system\, isto é, não é possível ter configurações diferentes para aplicações diferentes. O Rafael me alertou que é possível sim ter configurações diferentes pra aplicação, para isso, basta copiar o arquivo e colar lá, que ele usa sempre o da aplicação.

Foi desenvolvida uma padronização de nomemclatura das classes, diferenciando possíveis classes da mesma entidade nas diferentes camadas do sistema. Pra simplificar, a entidade Usuário terá o Usuario_Controller, e o Usuario_Model.

Libraries & Helpers

Assim como o CI, é possível estender o framework sobrescrevendo as libraries. Identifiquei um problema em algumas Libraries, onde existem métodos privados. Dessa forma, ao criar uma extensão, pode não ser possível aproveitar todas as funcionalidades da classe. Acredito que os métodos deveriam ser protegidos e muito provavelmente “final”, para não serem modificados.

Os helpers deixaram de ser apenas funções (ufa!) e se transformaram em métodos estáticos. Existe uma classe chamada “arr”, que poderia ser apenas uma extensão da classe Array da SPL.

Diversos

Mais alguns itens interessantes (ou não):

  • Não notei nenhuma diferença entre a camada de visualização do Kohana e CI;
  • O Kohana trabalha com autoload, e isso facilita a criação de extensões de Controllers e Models, que não sejam pela forma padrão, conforme eu disse num artigo sobre especialização de Controllers no CI.

Conclusão

Gostei do Kohana e acho que ele tem muito potencial pra superar o Code Igniter. Já começaram uma campanha no fórum em busca de pessoas pra ajudar na documentação e no desenvolvimento do framework.

Como é um projeto relativamente novo, óbviamente precisa de ajustes e uma comunidade forte é crucial neste sentido. Se voce acredita no potencial do CI e adoraria usar uma versão PHP 5, pense bem se não vale mais a pena colaborar com a comunidade do Kohana.

Written by Newton Wagner

February 1st, 2008 at 3:47 pm

Posted in framework

Tagged with ,

9 Responses to 'Minhas impressões sobre o Kohana Framework'

Subscribe to comments with RSS or TrackBack to 'Minhas impressões sobre o Kohana Framework'.

  1. <strong>Primeiras impressões sobre o PHP Kohana Framework…</strong>

    Primeiras impressões sobre o framework originado do Code Igniter, feito por um grupo de usuários do CI….

    Newton via Rec6

    2 Feb 08 at 15:03

  2. O segundo parágrafo do tópico organização dos arquivos é falso.

    Acredito que seja questão de tempo até que o CI seja feito somente para PHP 5. PHP 4 mórreu. E com a nova release, ele tá comprovando que veio pra brigar com gente grande.

    Daniel Costa

    2 Feb 08 at 21:23

  3. Daniel, removi também o segundo parágrafo. Valeu por avisar.

    Bem, não vi tantas diferenças do CI 1.6 pro 1.5, e pelo discurso que já li do Rick Ellis (autor do CI e dono da EllisLab) e do Derek Allard (trabalha pra EllisLab) no fórum oficial do CI, eles não negam que não têm interesse em perder a compatibilidade com o PHP 4.

    Isso por que muitos usuários do Expression Engine, software da EllisLab, ainda rodam PHP 4 e não têm interesse em migrar.

    Eu gosto do CI, mas vejo potencial no Kohana por ser desenvolvido pela comunidade e não estar preso à um outro software.

    Newton Wagner

    4 Feb 08 at 11:42

  4. Olá Newton,

    Passei os últimos 3 dias "brincando" com o Kohana.
    Assim como você, gostei muito dele. O fato de trabalhar com objetos e não com funções torna o código muito mais intuitivo e claro.
    Usar uma view como um objeto facilita muito as coisas e o simples ato de instanciar um objeto da maneira padrão: new, é um alento (ao menos para mim).
    Só tenho dúvidas quanto a sua citação "… não estar preso à um outro software.": até que ponto isso pode ser benéfico ou prejudicial ?
    Participando em alguns projetos Open Source que dependem somente da comunidade, vejo a maioria agonizando ou mesmo fechados. Claro que existem exceções, mas… ;-)
    Por outro lado, quando há uma empresa (ou um grupo) forte fica mais fácil aglutinar colaboradores. Veja o Zend, OpenSuse, Ubuntu…
    Enfim, tenho algumas ressalvas quanto ao futuro do Kohana e continuo no CodeIgniter. Cada vez mais vejo como única alternativa o Zend. Esse sim vai dar muito trabalho. A documentação está crescendo absurdamente com vários exemplos práticos sendo disponibilizados, o que facilita enormemente seu entendimento, área que o ZF ficava devendo já que sua documentação técnica sempre foi fora de série.

    Abs

    Marco Telles

    4 Feb 08 at 13:36

  5. Newton,

    Não viu tantas diferenças na nova versao? Mas ele não podia "mudar" muito mesmo não senão ficava complicado manter a compatibilidade, mas se você falou em relação à novas funcionalidades de cara já vi duas que atendem minhas necessidades como desenvolvedor, que são o carregamento de mais de uma view na mesma execução e, pelo que entendi, a possibilidade de extender os models e acessá-los das libraries. Isso eu resolvia com gatos e agora fazendo corretamente pelo framework, ficou uma maravilha. Sem falar das melhorias no A.R. que inclusive manipula schemas a partir de agora.

    Marco,

    Você falou tudo sobre o risco de um projeto open não ser atrelado à um produto ou algo do tipo. Dessa forma, tudo depende da sorte, somente dela.

    Daniel Costa

    4 Feb 08 at 14:17

  6. Bem, ZF não é atrelado a um software, e sim a uma empresa, o que são coisas bem distintas. E imagino que este é o caso dos outros softwares citados.

    O CI é atrelado a uma empresa, EllisLab, E ao seu software carro-chefe, que é o Expression Engine. Enquanto o EE não puder evoluir pro PHP 5 por causa dos clientes, o CI não vai evoluir.

    Claro que uma empresa por trás pode bancar algumas coisas, e isso o Kohana não tem mesmo. Mas não acho que dependa da sorte, depende da comunidade mesmo, é nisso que está baseado o software livre.

    Sobre o CI:
    - O "autoload" de models é só na inicialização na aplicação, e não em tempo de execução, como no Kohana, utilizando o __autoload() do php!

    Newton Wagner

    4 Feb 08 at 14:55

  7. Bem o Kohana tem todos os princípios para dar certo ! É um framework brilhante baseado na orientação à objetos e muito bem estruturado (profissionalmente). É questão de tempo até ele suplantar seus concorrentes e ganhar apoio de várias empresas de grande porte e da comunidade opensource. quem viver verá…

    Wagner Adriano

    26 Nov 09 at 11:02

  8. Minha pergunta é:
    - como o Kohana se adaptará ao PHP 6? vai continuar sendo compatível com o PHP 5?
    - Já há algum trabalho sendo feito neste sentido?

    Ilton Barbosa

    9 Dec 09 at 10:26

  9. Olá Ilton, ainda é cedo para se pensar em PHP 6 na prática, ainda mais a integração do framework à nova versão. Muitas das novidade anunciadas para a versão 6 foram lançadas na 5.3, e até hoje não vi nenhum comentário sobre previsão de lançamento.

    newton

    9 Dec 09 at 11:26

Leave a Reply