Usando hífen em URL’s no Kohana PHP

Se você prefere usar hífen (ou hífens) nas URL’s do seu projeto com Kohana, isto é muito simples. Basta extender a classe Request para gerenciar isso.

Salve no arquivo application/classes/request.php:

<?php defined('SYSPATH') or die('No direct script access.');
class Request extends Kohana_Request
{
	public function execute()
	{
		$this->action(str_replace('-', '', $this->action()));
		$this->controller(str_replace('-', '', $this->controller()));
		return parent::execute();
	}
}

A função str_replace elimina todas as ocorrências de hífens em controllers e actions da sua URL. Mas você pode adaptar e usar conforme precisar no seu projeto, substituindo por algum outro caractere, se essa for a necessidade.

Kohana: URL's com hífen

Kohana: URL's com hífen

Assim, permite por exemplo você tem uma URL
http://seuprojeto.com/sobre-nos/localize-no-mapa
ser redirecionada para o controller sobreNos e a action localizeNoMapa

É simples, é Kohana!
É por isso que eu gosto :)

Related Posts with Thumbnails
Esta entrada foi publicada em Kohana e marcada com a tag , . Adicione o link permanente aos seus favoritos.

9 respostas a Usando hífen em URL’s no Kohana PHP

  1. Boa Marcelo!
    Estou usando algo parecido em um sistema de e-commerce que estou desenvolvendo com o kohana… hehe
    Abraços

    • Marcelo Rodrigo disse:

      Valeu ae Matheus!

      Eu postei porque volta e meia alguém me pergunta como implementar isso, em vez de ficar colando via Google Talk gravei o post aqui pra ajudar mais gente :)

  2. @rafaelget disse:

    Legal a idéia.
    Aqui costumo configurar rotas especificas no bootstrap quando preciso de algo desse tipo.
    Valeu

  3. Adler Medrado disse:

    E aí Marcelo, tudo bem?
    Fiquei curioso: Porque isso não vem implementado no Kohana 'por padrão'?

    Abraço e continue mantendo seu ótimo trabalho de divulgação do Kohana.

    • Marcelo Rodrigo disse:

      Boa pergunta Adler.

      Um pouco é pela estrutura HMVC onde o underscore representa o diretório na nomeação das classes. Outra porque você não consegue declarar um classe Controller_Meu-Controller-Com-Hifen no PHP :)

      Abraço e obrigado pelo comentário!

  4. Everton disse:

    Pra quem tem algum projeto rodando na versão 3.0.8..
    Controller e Action são atributos.. então basta substituir pelo código abaixo:

    public function execute() {
    $this->action = str_replace('-', '', $this->action);
    $this->controller = str_replace('-', '', $this->controller);
    return parent::execute();
    }

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>