0

params プラグインのマジック関数のデフォルトの転送ルートはなぜですか?

以下のサンプルのように、zf がパラメーターから関数を取得できないのはなぜですか?

public function __invoke($param = null,$type='Route', $default = null)
{
    if ($param === null) {
        return $this;
    }
    $type = 'from'.ucfirst($type); 
    // Need to check function exist, if not must throw some error
    return $this->$type($param, $default);
}

使用例

$this->params('name','post');
$this->params('token','get');
$this->params('action'); // this will return from route like default one.

このようにデフォルトの params プラグインを拡張するにはどうすればよいですか? そして、それは良い動きですか?

4

1 に答える 1

0

デフォルトのパラメーターは常にルートから取得されます。これは、ZF2 が多くの手動ルーティングを行うことを奨励しているためです。これは、速度の目的と SEO の目的の両方のためです。

$this->params('paramname', 'defaultValueIfNotFound');

リクエストの特定の領域からパラメータが必要な場合は、params-plugin 自体を使用してそれを行うこともできます。しかし、これは@Matsemannによってすでに大きく説明されています

params プラグインを拡張できますが、追加オプションには 3 番目のパラメーターを使用する必要があります。ただし、他のアプローチは単純にクリーンであり、最終的にプラグインによる作業が少なくて済むことに注意してください。switchパラメータを取得するだけのステートメントはありません;)

于 2013-04-15T21:08:03.823 に答える