Mojo::Parameters - パラメーター
使い方
use Mojo::Parameters; # 解析 my $params = Mojo::Parameters->new('foo=bar&baz=23'); say $params->param('baz'); # 構築 my $params = Mojo::Parameters->new(foo => 'bar', baz => 23); push @$params, i => '♥ mojolicious'; say "$params";
説明
Mojo::Parametersは RFC 3986、 HTML Living Standard に基づいた Mojo::URLで利用される、フォームパラメーターのためのコンテナです。
属性
Mojo::Parametersは次の属性を実装しています。
charset
my $charset = $params->charset; $params = $params->charset('UTF-8');
パラメーターをデコードするために利用されるキャラクターセット。 デフォルトはUTF-8
です。
# エンコードとデコードを無効にします $params->charset(undef);
メソッド
Mojo::ParametersはMojo::Baseのすべてのメソッドを継承しており、 次の新しいメソッドを実装しています。
append
$params = $params->append(foo => 'ba&r'); $params = $params->append(foo => ['ba&r', 'baz']); $params = $params->append(foo => ['bar', 'baz'], bar => 23); $params = $params->append(Mojo::Parameters->new);
パラメーターを追加します。
# "foo=bar&foo=baz" Mojo::Parameters->new('foo=bar')->append(Mojo::Parameters->new('foo=baz')); # "foo=bar&foo=baz" Mojo::Parameters->new('foo=bar')->append(foo => 'baz'); # "foo=bar&foo=baz&foo=yada" Mojo::Parameters->new('foo=bar')->append(foo => ['baz', 'yada']); # "foo=bar&foo=baz&foo=yada&bar=23" Mojo::Parameters->new('foo=bar')->append(foo => ['baz', 'yada'], bar => 23);
clone
my $params2 = $params->clone;
パラメーターを複製します。
every_param
my $values = $params->every_param('foo');
cに似ていますが、 同じ名前で共有されているすべての値を、 配列のリファレンスで返却します。 このメソッドは、パラメーターを正規化することに注意してください。
# 最初の値を取得 say $params->every_param('foo')->[0];
merge
$params = $params->merge(foo => 'ba&r'); $params = $params->merge(foo => ['ba&r', 'baz']); $params = $params->merge(foo => ['bar', 'baz'], bar => 23); $params = $params->merge(Mojo::Parameters->new);
パラメーターをマージします。 このメソッドはパラメーターを正規化することに注意してください。
# "foo=baz" Mojo::Parameters->new('foo=bar')->merge(Mojo::Parameters->new('foo=baz')); # "yada=yada&foo=baz" Mojo::Parameters->new('foo=bar&yada=yada')->merge(foo => 'baz'); # "yada=yada" Mojo::Parameters->new('foo=bar&yada=yada')->merge(foo => undef);
names
my $names = $params->names;
すべてのパラメーター名のリストを返却します。
# すべてのパラメーターの名前 say for @{$params->names};
new
my $params = Mojo::Parameters->new; my $params = Mojo::Parameters->new('foo=b%3Bar&baz=23'); my $params = Mojo::Parameters->new(foo => 'b;ar'); my $params = Mojo::Parameters->new(foo => ['ba;r', 'b;az']); my $params = Mojo::Parameters->new(foo => ['ba;r', 'b;az'], bar => 23);
新しいMojo::Parametersオブジェクトを生成するか、 必要であれば、パラメーターを解析します。
pairs
my $array = $params->pairs; $params = $params->pairs([foo => 'b&ar', baz => 23]);
パラメーターのペアを解析します。 このメソッドはパラメーターを正規化することに注意してください。
param
my $value = $params->param('foo'); $params = $params->param(foo => 'ba&r'); $params = $params->param(foo => qw(ba&r baz)); $params = $params->param(foo => ['ba;r', 'baz']);
パラメーターの値にアクセスします。 同じ名前で共有する複数の値があり、 最後のひとつより多い値を取得したい場合は、 every_param
を使用することができます。 このメソッドはパラメーターを正規化することに注意してください。
params
my $array = $params->params; $params = $params->params([foo => 'b&ar', baz => 23]);
解析されたパラメーター。 このメソッドはパラメーターをノーマライズすることに注意してください。
parse
$params = $params->parse('foo=b%3Bar&baz=23');
パラメーターを解析します。
remove
$params = $params->remove('foo');
パラメーターを取り除きます。
# "bar=yada" Mojo::Parameters->new('foo=bar&foo=baz&bar=yada')->remove('foo');
to_hash
my $hash = $params->to_hash;
パラメーターをハッシュに変換します。 このメソッドはパラメーターをノーマライズすることに注意してください。
# "baz" Mojo::Parameters->new('foo=bar&foo=baz')->to_hash->{foo}[1];
to_string
my $str = $params->to_string;
パラメーターを文字列に変換します。
# "foo=bar&baz=23" Mojo::Parameters->new->pairs([foo => 'bar', baz => 23])->to_string;
演算子
Mojo::Parametersは次の演算子をオーバーロードしています。
配列
my @pairs = @$params;
pairs
のエイリアス。これはパラメーターを正規化することに注意していください。
say $params->[0]; say for @$params;
真偽値
my $bool = !!$params;
いつでも真です。
文字列化
my $str = "$params";
to_string
のエイリアス。
参考
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(Mojolicious 8.12を反映。2019年5月23日更新)