É um sistema de plugins que permite adicionar funcionalidades extras ao Kohana de forma simples e
modular.
Documentação: A documentação do Kohana é completa e de fácil entendimento, além de possuir diversos tutoriais
para iniciantes.
Suporte a banco de dados: Possui drivers para os principais SGBDs como MySQL, PostgreSQL, SQLite, Oracle e
Microsoft SQL Server.
Internacionalização: Possui suporte nativo para criação de aplicações multi-idiomas.
Portabilidade: Pode ser utilizado em diversos sistemas operacionais como Linux, Windows, Mac OS
1. Apresentação do Kohana Framework
André Luis - andre@joyagencia.com.br
Kohana é um Framework para desenvolvimento de aplicações para Web utilizando como base a linguagem de
programação PHP. Ele utiliza a arquitetura MVC (Model-View-Controller) que divide a aplicação em basicamente
três partes menores:
• Model (Modelo) – Representa uma estrutura de dados, geralmente uma tabela do banco de dados e seus
relacionamentos.
• View (Visão) – Representa a parte visual que será gerada para o usuário.
• Controller (Controlador) – Manipula os dados de entrada e saída e contêm a parte lógica da aplicação, utiliza os
dados da camada de modelo e retorna informações para a camada de Visão.
Umas das principais vantagens no uso desse padrão de desenvolvimento é que ele separa a parte lógica da parte
visual da aplicação.
O Kohana surgiu inicialmente em Julho de 2007 com o nome BlueFrame e era baseado em outro Framework
chamado CodeIgniter, desenvolvido por membros da comunidade desse Framework.
A partir da versão 2, o Kohana foi completamente reescrito e foi desenvolvido utilizando um padrão em cascata
para os componentes da aplicação, conforme a figura 1:
Além das pastas para os componentes padrões da divisão MVC , foram incluídos:
Libraries (Bibiotecas) : São grupos de métodos e funcionalidades em comum para determinadas atividades como
controle de sessões, manipulação de imagens, autenticação, entre outras funcionalidades. No pacote padrão do
Kohana foram incluídas diversas bibliotecas que podem ser utilizadas pelo usuário de acordo com as necessidades
de cada projeto.
Helpers (Auxiliares) São funções simples utilizadas em tarefas repetitivas, em geral evitam a repetição de código e
aumenta a produtividade.
i18n (Arquivos de linguagem): São arquivos utilizados para salvar mensagens e informações textuais do sistema.
Além disso, é a base para criar sistemas multi-idiomas, pois agrupa as mensagens de diferentes idiomas em uma
pasta correspondente.
Config (Arquivos de configuração) : São arquivos utilizados para salvar configurações de qualquer outro componente
do Framework ou desenvolvido pelo usuário.
Por padrão, os componentes do Kohana são agrupados na pasta system e os arquivos da aplicação do usuário na
pasta application. Entretanto, o Kohana oferece uma excelente alternativa que é o agrupamente em módulos,
garantindo uma excelente separação dos compontes da aplicação do usuário e permitindo o compartilhamento e
2. reutilização de determinado módulo entre vários projetos e outros desenvolvedores. A figura 2 mostra a divisão por
módulos do Kohana e a utilização em cascata do arquivo que será executado, em ordem de precedência na busca.
Além da arquitetura MVC e do padrão de arquivos em cascata, o Kohana possui as seguintes características:
Arquitetura PHP5 OO: Ele foi desenvolvido utilizando os padrões e características da versão 5 do PHP como
proteção de visibilidade, carregamento automático de classes, interfaces etc.
Projeto coordenado por comunidade: O projeto é mantido pelo trabalho de uma comunidade de desenvolvedores
de todas as partes do mundo, cada um com seus talentos, idéias e contribuições para a evolução do projeto. Isso
permite um ciclo de desenvolvimento e ajuda muito rápida.
Eventos: A execução do Kohana segue uma ordem de eventos, além disso o desenvolvedor pode criar aplicações
utilizando essa plataforma para um melhor controle da prioridade na execução de tarefas.
3. Segurança: O Kohana possui uma biblioteca flexível para validação de dados e outras ferramentas para prevenir
diversos tipos de ataques.