Uri クラス
Uri クラスは URI を対話的に扱うことができます。
base($include_index = true)
base メソッドはベース URL を返します。
なお、 $include_index を false にセットした場合は、 index_file (インデックスファイル名) を除いた URL を返します。
注意してください : もし app/config/config.php で index_file がセットされていない場合は $include_index 変数は無視されます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$include_index |
true
|
返り値の url に対してインデックスを付加するかどうかを決めます。 |
|
返り値 |
string 、オプションとしてインデックスファイル名が付加されることがあるベース url を返します。 |
例 |
echo Uri::base();
// http://localhost/index.php
echo Uri::base(false);
// http://localhost/
|
create($uri = null, $variables = array(), $get_variables = array(), $secure = null)
create メソッドは、与えられた URI を加えた URL を生成することが出来ます。その URL にはベース URL を含みます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$uri |
null
|
URL |
$variables |
array()
|
URL のための各種変数。 |
$get_variables |
array()
|
URL に付加されるクエリ文字列。その値とキーは $variables 配列から得られた変数を
利用することが出来ます。 |
$secure |
null
|
生成される URL は、本項が false の場合は http 、 true の場合は https となります。 |
|
返り値 |
string |
例 |
echo Uri::create('controller/method');
// http://localhost/controller/method が返ります
echo Uri::create('controller/:some', array('some' => 'thing', 'and' => 'more'), array('what' => ':and'));
// http://localhost/controller/thing?what=more が返ります
echo Uri::create('http://www.example.org/:some', array('some' => 'thing', 'and' => 'more'), array('what' => ':and'));
// http://www.example.org/thing?what=more が返ります
echo Uri::create('http://www.example.org/:some', array('some' => 'thing', 'and' => 'more'), array('what' => ':and'), true);
// https://www.example.org/thing?what=more が返ります
|
current()
current メソッドを用いると、現在の URL を取得出来ます。URL には HMVC パターン内部で定義されているベース URL が含まれます。
静的 |
はい |
パラメータ |
無し |
返り値 |
string |
例 |
// URL 例 : http://localhost/module/controller/method
echo Uri::current(); // http://localhost/module/controller/method が返ります
|
main()
main メソッドでベース URL を含む現在の URL を取得することが出来ます。
静的 |
はい |
パラメータ |
無し |
返り値 |
string |
例 |
// URL 例 : http://localhost/controller/method
echo Uri::main(); // http://localhost/controller/method が返ります
|
segment($segment, $default = null)
segment メソッドを用いると、取得したい特定の url セグメントを得ることができます。そのセグメントが存在しない場合は、 false が返されます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$segment |
必須 |
セグメント番号。 |
$default |
null
|
デフォルト? (The default?) |
|
返り値 |
string |
例 |
// URL 例 : http://localhost/controller/method/param1/param2
echo Uri::segment(3); // param1 が返ります
|
segments()
segments メソッドによって、現在の URI セグメント全てを配列で取得することが出来ます。
静的 |
はい |
パラメータ |
無し |
返り値 |
array |
例 |
// URL 例 : http://localhost/controller/method
echo Uri::segments(); // array(0 => 'controller', 1 => 'method') が返ります
|
segment_replace($url, $secure = null)
segment_replace メソッドは、与えられた url の中にあるワイルドカードを、その場所にある現在の URI セグメントに取り替えることができます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$url |
必須 |
ワイルドカードを含んだ URL 。ワイルドカード文字は * (アスタリスク) で表されます。 |
$secure |
null
|
返される URL は、本項が false の場合は HTTP 、 true の場合は HTTPS となります。 |
|
返り値 |
string |
例外 |
OutOfBoundsException 。もし、ワイルドカードが置かれた場所にあるセグメントの値が存在しなかった場合。 |
例 |
// 例 : 現在の URL = http://localhost/one/two 、'one' と 'two' のセグメントを持っている
// http://localhost/one/two/three を返す
echo Uri::segment_replace('http://localhost/*/*/three');
// 3 番目のセグメントが存在しなかったとして、例外を投げる
echo Uri::segment_replace('http://localhost/this/that/*/other');
// https://localhost/one/two/three を返す
echo Uri::segment_replace('http://localhost/*/*/three', true);
|
update_query_string($vars = array(), $uri = null, $secure = null)
update_query_string メソッドは、現在の URI または渡された URI のクエリ文字列を更新します。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$vars |
array()
|
クエリ変数の連想配列、または変数名を含んだ文字列。 |
$uri |
null
|
使用する url 。与えられなければ、現在の url が使われます。$vars が文字列ならば、
これは変数の値を含みます(このケースでは、カスタム uri を渡すことができないということです!)。
|
$secure |
null
|
返される URL は、本項が false の場合は HTTP 、 true の場合は HTTPS となります。 |
|
返り値 |
string |
例 |
// 例 : 現在の URL = http://localhost/test?one=1&two=2
// http://localhost/test?one=1&two=2&three=3 を返す
echo Uri::update_query_string(array('three' => 3));
// http://localhost/test?one=1&two=3 を返す
echo Uri::update_query_string(array('two' => 3));
// http://localhost/controller?four=4 を返す
echo Uri::update_query_string(array('four' => 4), 'http://localhost/controller');
// https://localhost/test?one=1&two=2&three=3 を返す
echo Uri::update_query_string('three', 3, true);
|
to_assoc($start = 1)
to_assoc メソッドはセグメントが偶数の場合、それを配列化して連想配列にします。奇数の場合は、最後のキーの値は null
を返します。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$start |
1
|
始まりのセグメント番号。これによって、主要なセグメントだけを取り出すことができます。 |
|
返り値 |
array |
例 |
// Uri が /welcome/index/page/4 の場合
$arr = Uri::to_assoc();
/*
結果 :
array(
'welcome' => 'index',
'page' => 4,
);
*/
// Uri が /welcome の場合
$arr = Uri::to_assoc();
/*
結果 :
array(
'welcome' => null,
);
*/
|
string()
string メソッドを用いると、現在の URI を取得出来ます。
静的 |
はい |
パラメータ |
無し |
返り値 |
string |
例 |
// URL 例 : http://localhost/controller/method
echo Uri::string(); // controller/method が返ります
|
build_query_string($values ...)
build_query_string メソッドは、1 つ以上の連想配列か文字列値を渡してクエリ文字列を生成します。
既存のものから最新のクエリ文字列を組み立てるために Input::get() の中で渡すことができます。
文字列を渡す場合、スイッチとみなされて "string=1" に変換されます。
静的 |
はい |
パラメータ |
パラメータ |
デフォルト |
説明 |
$values |
必須 |
1 つ以上の連想配列または文字列値 |
|
返り値 |
string |
例 |
// "varA=varA&varB=1&varC=varC" が返ります
echo Uri::build_query_string(array('varA' => 'varA'), 'varB', array('varC' => 'varC'));
|