Kohana 3 kontrolcüsünü ve eylem almak için url ayrıştırmak

0 Cevap php

Ben Kohana 3 yönlendirme sayfanın denetleyicisi / eylem adını algılamak için sorun yaşıyorum.

Ne yapmam yönlendirme sayfası dahili veya external.If da (google gibi) dışsal gelen olup olmadığını tespit etmek, bazı varsayılan ayarı yapacağız. (Aynı etki yani) iç yönlendirme ise, ben bu yönlendirme sayfanın denetleyicisi ve eylem bilgilere göre farklı bir şeyler yapmak gerekiyor.

Ben $ _SERVER ["HTTP_REFERRER"] denetimi ile başlar, ama ben bu değişkenin denetleyicisi ve eylem adı alma sıkışmış. Ben bootstrap rotaları özelleştirilmiş olduğundan, ben aynı almak istiyorum

Ben Kohana geçerli isteğin denetleyici ve eylem almak için yöntemler sağlar biliyor.

$this->request->controller
$this->request->action
$this->request->param('paramname')

Verilen bir URL dizesini ayrıştırmak ve denetleyicisi / eylem / parametreleri bilgileri dönebilirsiniz yöntemler olup olmadığını merak ediyorum. Iken

Herhangi bir fikir?

GÜNCELLEME:

Kohana kaynak kodunda çalışma saat sonra, ben 2 adımda bir çözüm bulundu:

Adım 1. URI URL dönüştürmek. Dış sevk eden ise, URI NULL olmalıdır.

function URL2URI($URL)
{
    if (empty($URL)) return NULL;
    $url_info = parse_url($URL);
    if (!isset($url_info['host']) || !isset($url_info['path'])) return NULL;
    return ($url_info['host'] === $_SERVER['HTTP_HOST']) ? ltrim($url_info['path'], '/') : NULL;
}

Adım 2. Tüm yolları ile URI Test ve URI ($ maçı ['kontrolör'], $ maçı ['action']) maçları rotadan bilgi almak.

function getInfoFromURI($URI)
{
     if (empty($URI)) return NULL;    
     $routes = Route::all();
     foreach ($routes as $oneRoute)
     if ($match = $oneRoute->matches($URI))
          return $match;    
     return NULL;
 }

0 Cevap