De uns tempos pra cá, tenho utilizado bastante o Kohana PHP para suprir minhas necessidades Web + PHP.
Conheci o Kohana após desenvolver por um bom tempo em cima do framework, bem conhecido, Code Igniter, no qual o Kohana foi baseado.
Dizendo “por cima” (não é o foco do artigo), resolvi trocar o Code Igniter pelo Kohana, basicamente devido ao uso estrito da orientação a objetos disponibilizada no PHP 5, e também ao fato de que o Kohana é mantido pela sua própria comunidade, o contrário do Code Igniter, que todos sempre tiveram que esperar a boa vontade do pessoal da Ellislab para o lançamento de novas versões, features, etc… Enfim, isso é assunto para outra discussão, em breve.
O que quero explicar aqui, é uma coisa bem básica de se fazer no Kohana, a criação de Múltiplas Aplicações, apenas com uma instância do Kohana.
Infelizmente não tive a oportunidade de fazer o mesmo no Code Igniter, por falta de necessidade mesmo. Então *não* vou falar aqui, qual framework é mais fácil de se fazer isso, se difere (já que o Kohana é baseado no Code Igniter), etc… Se alguém souber como funciona no CI (acredito que da mesma forma do Kohana), pronuncie-se! :-)
Lembrando que isso esse é só um exemplo de como você pode utilizar o conceito de múltiplas aplicações no Kohana.
Baseando-se em uma instalação limpa do Kohana, após a extração dos arquivos, você terá uma estrutura assim:
application/
system/
index.php
Neste exemplo, vou criar duas aplicações: app_index e app_admin. Onde app_index será a aplicação principal (site) e a app_admin será a aplicação responsável pela administração do site.
Portanto, você deve fazer uma cópia do diretório application, no mesmo local, e renomear as duas pastas para: app_index e app_admin. Tendo assim a estrutura abaixo:
app_admin/
app_index/
index.php
O próximo passo é a criação do .htaccess que vai nos auxiliar nessa “arte”. Personalize o código abaixo conforme a sua necessidade.
Este .htaccess, tem a função de direcionar as URL’s para o arquivo especifico de cada uma. Ou seja:
http://127.0.0.1/dir_instalacao_kohana/admin -> admin.php
http://127.0.0.1/dir_instalacao_kohana/(qualquer outra coisa que nao seja admin/) -> index.php
Grande parte do .htaccess abaixo, foi retirado da própria documentação do Kohana.
# Turn on URL rewriting
RewriteEngine On
# Put your installation directory here:
# If your URL is www.example.com/, use /
# If your URL is www.example.com/kohana/, use /kohana/
RewriteBase /dir_instalacao_kohana/
# Do not enable rewriting for files or directories that exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} /dir_instalacao_kohana/admin(/|$)
RewriteRule ^admin/(.*)$ admin.php/$1 [PT,L]
RewriteRule ^(.*)$ index.php/$1 [PT,L]
Podemos perceber que a regra (RewriteRule) ^admin/(.*)$ aponta para o arquivo admin.php, o qual eu vou explicar de onde vem agora.
O arquivo admin.php, nada mais é que a cópia do arquivo index.php, porém ele precisa ser configurado para apontar para o diretório app_admin, assim como o index.php precisa ser configurado para apontar para o diretório app_index também, como abaixo.
index.php
$kohana_application = 'app_index';
admin.php
$kohana_application = 'app_admin';
Após isso, vem a parte da configuração especifica de cada aplicação. Uma dessas configurações, que com certeza você vai precisar é o routes.php, que fica por padrão localizado no system/config/routes.php.
Se você não tiver o arquivo routes.php, dentro da pasta config da sua aplicação, ele vai pegar o arquivo padrão que é o próprio system/config/routes.php. Portanto faça uma cópia do routes.php para cada uma de suas aplicações, no nosso caso, para app_index/config/routes.php e app_admin/config/routes.php.
De aqui pra frente é só com você, a estrutura esta montada, e espero que a explicação esteja simples e fácil de compreender.
Não deixe de comentar sua própria experiência.
Engraçado…. antes deu mesmo conhecer Kohana criei um framework em PHP tb que funciona com múltiplas aplicações e apenas com uma instância tb.
Se alguem tiver curiosidade acessem http://xpt.alexsandro.com.br
Qualquer dúvida, me envia e-mail pelo site.
Pô, legal :)
O framework não esta disponível para download Alexsandro?
[]s
Opa.. ainda não.. pois estou lampidando-a, a principio apenas amigos estão testando-a.
Você gostaria de ser um colaborador/tester tambem?
Muito bom o tutorial,
boa explicação, configurei minha multi aplicações em 5 minutos.
vlw