Por enquanto está assim:
index.php
//pega o candidato a application, que também pode ser um controller
list($void, $subpath, $application) = explode('/', $_SERVER['REQUEST_URI']);
//se existir é um application, senão é um controller do application default
$application = !empty($application) &&
file_exists('applications/'.$application)
? 'applications/'.$application
: 'applications/application';
As pastas application
/applications/application <--- default
/applications/admin <-- outra application
/applications/blog <-- outras application
/applications/classificados <-- outras application
bootstrap.php <-- de cada application (a application default segue o padrão
do kohana)
Kohana::init(array(
'base_url' => '/blog/', <--- nome da application
Kohana::init(array(
'base_url' => '/admin/', <--- nome da application
Rotas default da application blog
Route::set('default', '(<application>(/<controller>(/<action>(/<id>))))',
array(
'application' => 'blog'
))
->defaults(array(
'controller' => 'welcome',
'action' => 'index',
));
Cada application não default deve seguir este padrão.
Aí meu sistema tem ..
site.com/controller/action/id <--- application default é acionada
site.com/blog/controller/action/id <--- application blog é acionada
site.com/admin/controller/action/id <--- application admin é acionada
E por aí vai. Você pode acrescentar quantas applications quiser, com tanto
que o nome das aplpications não choque com o nome dos controllers da
application default..
Isso eu fiz correndo, só para ver se funcionava legal. A idéia era ter
módulos integrados no mesmo site, sem usar o modules ou fazer "aplicações
descontextualizadas" :D
Bom, agora tem mais uma opção.
Em 20 de abril de 2012 11:36, Guilherme Maule
<[email protected]>escreveu:
> tranquilo!
>
> valeu..
>
> Att,
> Guilherme Maule.
>
> *Enviado de meu iPhone.
>
> Em 20/04/2012, às 11:33, felipe bastos <[email protected]> escreveu:
>
> Estou mobile agora ..
>
> Mas em cada application eu alterei a route default acrescentando a
> variavel "application" no mesmo estilo da variavel de diretorio.
>
> E no index.php eu pego o URI e descubro qual application devo chamar ..
>
> $application ... "applications/nome_da_application"
>
> Eu criei um topico a no maximo 15 dias sobre sistemas multi applications
> .. deve ta recente no historico do grupo
> Em 20/04/2012 11:23, "Guilherme Maule" <[email protected]>
> escreveu:
>
>> Felipe,
>>
>> Teria como voce postar aqui a route como ficou?
>>
>> Obrigado!
>>
>> Abraços..
>>
>> Em 20 de abril de 2012 11:15, felipe bastos <[email protected]>escreveu:
>>
>>> Rapaz, no inicio tbm pensei que isso seria util, mas depois percebi que
>>> nao tinha motivos para uma aplicacao ter tantos subdiretorios.
>>>
>>> Para deixar a aplicacao modular alterei o index.php para reconhecer
>>> várias aplicacoes no mesmo sistema.
>>>
>>> Ai tenho ...
>>>
>>> Site.com/controller/action - que chama application padrao
>>> Site.com/application2/controller/action - chama uma application2, e por
>>> ai vai. A application pode ser qualquer nome. E como alterei a rota defaul
>>> das outras aplicacoes, posso ter subdiretorio em cada application com tanto
>>> que um subdiretorio nao tenha o mesmo nome de uma application.
>>>
>>> Dificilmente vc vai precisar passar desse esquema.
>>> Em 20/04/2012 09:31, "Juarez Junior" <[email protected]> escreveu:
>>>
>>> Não seria mais fácil criar uma rota para cada diretório? Digo isto pq
>>>> uso aqui no projeto da empresa.
>>>>
>>>> [s]
>>>>
>>>> 2012/4/20 Douglas J.A.M <[email protected]>:
>>>> > Bom dia pessoal,
>>>> >
>>>> > Estou apanhando aqui para fazer um regex para atender de maneira
>>>> genérica a
>>>> > leitura de todas os meus controllers em seus subdiretorios para
>>>> > poder ler por exemplo
>>>> >
>>>> > http://sistema/
>>>> > http://sistema/controller
>>>> > http://sistema/pasta/controller
>>>> > http://sistema/pasta/pasta/controller
>>>> > http://sistema/pasta/pasta/pasta/controller
>>>> >
>>>> > Gostaria de fazer uma rota única para todos meus controllers, sendo
>>>> que na
>>>> > segunda rota deve ser:
>>>> > n diretorios separados por virgula, e a ultima palavra é o
>>>> controller, caso
>>>> > tenha somente uma palavra, o directory é o default o o controlleré o
>>>> exibido
>>>> > na url.
>>>> > Creio eu que lógica está correta mas uma excessão está sendo gerada:
>>>> >
>>>> > ErrorException [ Warning ]: preg_match() [<a
>>>> > href='function.preg-match'>function.preg-match</a>]: Compilation
>>>> failed:
>>>> > range out of order in character class at offset 55
>>>> >
>>>> >
>>>> > Route::set('default', '(<action>)', array('action' => 'login|logout'))
>>>> > ->defaults(array(
>>>> > 'directory' => 'sistema',
>>>> > 'controller' => 'autenticacao',
>>>> > 'action' => 'index',
>>>> > ));
>>>> >
>>>> > Route::set('aplicacao',
>>>> '(<directory>)(<controller>(/<action>(/<id>)))',
>>>> > array('directory' => '[[A-Za-z]+/?]*', // palavras de no
>>>> minimo 1
>>>> > caractere separadas por 0 ou 1 "/" a cada palavra, pode se ter 0 ou
>>>> n-1
>>>> > palavras
>>>> > 'controller' => '[A-Za-Z]+', // ultima ou unica palavra
>>>> de no
>>>> > minimo 1 caractere
>>>> > 'action' => 'ver|novo|editar|excluir',
>>>> > 'id' => 'd+'))
>>>> > ->defaults(array(
>>>> > 'directory' => 'sistema',
>>>> > 'controller' => 'inicio',
>>>> > 'action' => 'index',
>>>> > ));
>>>> >
>>>> > --
>>>> > Você está recebendo esta mensagem porque se inscreveu no grupo
>>>> "Kohana Php"
>>>> > dos Grupos do Google.
>>>> > Para ver esta discussão na web, acesse
>>>> > https://groups.google.com/d/msg/kohana-php/-/NA1xzeDp6xsJ.
>>>> > Para postar neste grupo, envie um e-mail para
>>>> [email protected].
>>>> > Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>> > [email protected].
>>>> > Para obter mais opções, visite esse grupo em
>>>> > http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>
>>>>
>>>>
>>>> --
>>>> Juarez Junior - [email protected]
>>>> http://twitter.com/juareznjunior
>>>> http://juareznjunior.wordpress.com/
>>>>
>>>> --
>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>>> Php" dos Grupos do Google.
>>>> Para postar neste grupo, envie um e-mail para
>>>> [email protected].
>>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>>> [email protected].
>>>> Para obter mais opções, visite esse grupo em
>>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>>
>>>> --
>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>>> Php" dos Grupos do Google.
>>> Para postar neste grupo, envie um e-mail para
>>> [email protected].
>>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>>> [email protected].
>>> Para obter mais opções, visite esse grupo em
>>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>>
>>
>>
>>
>> --
>>
>> Att,
>> *Guilherme Maule dos Reis*
>> *Web Designer *
>>
>> 43 - 9129 1400
>>
>>
>> --
>> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
>> Php" dos Grupos do Google.
>> Para postar neste grupo, envie um e-mail para [email protected]
>> .
>> Para cancelar a inscrição nesse grupo, envie um e-mail para
>> [email protected].
>> Para obter mais opções, visite esse grupo em
>> http://groups.google.com/group/kohana-php?hl=pt-BR.
>>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana
> Php" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para [email protected].
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> [email protected].
> Para obter mais opções, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.
>
--
http://felipebastosweb.com.br
http://twitter.com/felipebastosweb
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos
Grupos do Google.
Para postar neste grupo, envie um e-mail para [email protected].
Para cancelar a inscrição nesse grupo, envie um e-mail para
[email protected].
Para obter mais opções, visite esse grupo em
http://groups.google.com/group/kohana-php?hl=pt-BR.