URLヘルパー(MY_url_helper)を拡張しています。ヘルパー関数内でbase_url()にアクセスするにはどうすればよいですか?私は実際にbase_url()をオーバーライドしているので、元のbase_urlを呼び出す必要があります。
編集1:
これは機能しません:
$CI =& get_instance();
$CI->load->helper('url');
$base_url = $CI->base_url();
URLヘルパー(MY_url_helper)を拡張しています。ヘルパー関数内でbase_url()にアクセスするにはどうすればよいですか?私は実際にbase_url()をオーバーライドしているので、元のbase_urlを呼び出す必要があります。
編集1:
これは機能しません:
$CI =& get_instance();
$CI->load->helper('url');
$base_url = $CI->base_url();
残念ながら、組み込みのヘルパー関数はグローバル php 名前空間で定義されています。ある名前の関数を定義するbase_url
と、同じ名前の別の関数を定義できなくなるためbase_url
、元のヘルパーから元の関数をロードすることはできません。 「どこか他の場所」で使用します。
このため、CI の組み込みヘルパー ファイルは、次のような if ブロックで関数を定義します。
if ( ! function_exists('FUNCTION_NAME'))
// ...
}
そのため、オーバーライドされたバージョンで元のヘルパー ファイルを読み込んだとしても、致命的なエラーは発生しませんが、意味のあることも何もしません。
具体的なケースでは、base_url の実装は基本的に次のとおりです。
return get_instance()->config->base_url($uri);
のオーバーライドされたバージョンにそれを持ち上げることができますbase_url
。