Pois é, realmente o nome das classes de controller terão de ficar assim,
mas como eu creio que raramente vou fazer chamadas a controllers não tem
problema.
Realmente ainda não ta otimizado, mas vou ir refinando isto com o tempo,
perdi tempo demais tentando fazer o regex, tenho de acelerar aqui senão não
vai ter como mostrar resultados.


Em 24 de abril de 2012 08:13, felipe bastos <[email protected]> escreveu:

> Vixe .. isso tudo?
>
> Voce ja pensou no nome das classes?
>
> Controller_Diretorio1_Diretorio2_Diretorio3_DiretorioN_NomedoController
> extends ...
>
> Achei seu algoritmo confuso ...
>
> Vc poderia dar um explode no uri .. e ir verificando se é diretorio
> is_directory().
>
> Quando nao for mais diretorio .. é controller, action, id (baseado no
> padrão).
>
> De qualquer forma, Boa sorte!
> Em 24/04/2012 07:55, "Douglas J.A.M" <[email protected]> escreveu:
>
>> Galera o pessoal do forum do kohana me ajudou, utilizei funções no route,
>> há como:
>>
>>
>> http://kohanaframework.org/3.2/guide/kohana/routing#lambdacallback-route-logic
>>
>>
>> Filé demais esse framework viu! Dei um vardump ali só para debug caso
>> desejem testar.
>>
>> Como meu código ficou:
>>
>> Route::set('default', function($url = '') {
>>
>>             $directory = '';
>>             $controller = 'inicio';
>>             $action = 'index';
>>             $id = '';
>>
>>             $partes = explode('/', $url);
>>             $i = sizeof($partes) - 1;
>>
>>             // verifica se tem  id
>>             if (is_numeric($partes[$i])) {
>>                 $id = $partes[$i];
>>                 $i--;
>>             }
>>
>>             // verifica se tem action
>>             if (in_array($partes[$i], array('index', 'ver', 'novo',
>> 'editar', 'excluir'))) {
>>                 $action = $partes[$i];
>>                 $i--;
>>             }
>>
>>             if ($i >= 0) {
>>                 // controller é o próximo
>>                 $controller = $partes[$i];
>>                 $i--;
>>             }
>>
>>             // o resto é o diretório
>>             while ($i >= 0) {
>>                 $directory .= $partes[$i] . '/';
>>                 $i--;
>>             }
>>
>>             // caso tenha remove a ultima barra do diretório
>>             if (strlen($directory) > 0)
>>                 $directory = substr($directory, 0, -1);
>>
>>             // verifico se na url veio só login, se sim, o controller é
>> autenticacao
>>             // e a ação é login|logout
>>             if($controller == "login" || $controller == "logout"){
>>                 $action = $controller;
>>                 $controller = "autenticacao";
>>             }
>>
>>             $retorno = array(
>>                 'directory' => $directory,
>>                 'controller' => $controller,
>>                 'action' => $action,
>>                 'id' => $id,
>>             );
>>
>>             echo var_dump($retorno);
>>             return $retorno;
>>         });
>>
>> --
>> 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/-/HPq_iZ2tVvcJ.
>> 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.

Responder a