フックを使用する代わりに、CI_URI
クラスとCI_Config
クラスを単にオーバーライドすることもできます。 URIセグメントをセグメント配列にロードするときには、URIセグメントを復号化する必要があります(恐らく_set_uri_string()
メソッド)。次に、オーバーライドされたCI_Config
クラス(具体的には_uri_string()
メソッド)のセグメントを暗号化する必要があります。ここで
は、あなたの楽しみのために(未テスト)のサンプルです:
<?php
// application/core/MY_URI.php
class MY_URI extends CI_URI {
function _set_uri_string($str)
{
parent::_set_uri_string($str);
$CI =& get_instance();
$CI->load->library('encrypt');
$parts = explode('/', $this->uri_string);
foreach ($parts as &$part)
{
if ($part) $part = $CI->encrypt->decode($part);
}
$this->uri_string = implode('/', $parts);
}
}
// application/core/MY_Config.php
class MY_Config extends CI_Config {
protected function _uri_string($uri)
{
if (!is_array($uri))
{
$uri = explode('/', $uri);
}
$CI =& get_instance();
$CI->load->library('encrypt');
foreach ($uri as &$part)
{
if ($part) $part = $CI->encrypt->encode($part);
}
return parent::_uri_string($uri);
}
}
あなたがフックに見たいかもしれません。 http://codeigniter.com/user_guide/general/hooks.html –