X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FPathRouter.php;h=2dbc7ec0d8d16485cd9f319772dd82c2cc6007de;hb=6088cd4458f6b6ca36bcdd881c4c3d4d49b6d1b8;hp=9700b90a38e16499ae71ba5fef427e063aa7c642;hpb=458f162b63d3c44bd158393d04f11d67c63b6dd4;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/PathRouter.php b/includes/PathRouter.php index 9700b90a38..2dbc7ec0d8 100644 --- a/includes/PathRouter.php +++ b/includes/PathRouter.php @@ -1,4 +1,25 @@ '$1' )`, * if you don't want the title parameter you can explicitly use `array( 'title' => false )` - * - You can specify a value that won't have replacements in it + * - You can specify a value that won't have replacements in it * using `'foo' => array( 'value' => 'bar' );` * * Options: @@ -51,11 +72,20 @@ */ class PathRouter { + /** + * @var array + */ + private $patterns = array(); + /** * Protected helper to do the actual bulk work of adding a single pattern. * This is in a separate method so that add() can handle the difference between * a single string $path and an array() $path that contains multiple path * patterns each with an associated $key to pass on. + * @param $path string + * @param $params array + * @param $options array + * @param $key null|string */ protected function doAdd( $path, $params, $options, $key = null ) { // Make sure all paths start with a / @@ -140,6 +170,9 @@ class PathRouter { /** * Add a new path pattern to the path router with the strict option on * @see self::add + * @param $path string|array + * @param $params array + * @param $options array */ public function addStrict( $path, $params = array(), $options = array() ) { $options['strict'] = true; @@ -158,6 +191,10 @@ class PathRouter { array_multisort( $weights, SORT_DESC, SORT_NUMERIC, $this->patterns ); } + /** + * @param $pattern object + * @return float|int + */ protected static function makeWeight( $pattern ) { # Start with a weight of 0 $weight = 0; @@ -202,7 +239,7 @@ class PathRouter { // Make sure our patterns are sorted by weight so the most specific // matches are tested first $this->sortByWeight(); - + $matches = null; foreach ( $this->patterns as $pattern ) { @@ -219,6 +256,11 @@ class PathRouter { return is_null( $matches ) ? array() : $matches; } + /** + * @param $path string + * @param $pattern string + * @return array|null + */ protected static function extractTitle( $path, $pattern ) { // Convert the path pattern into a regexp we can match with $regexp = preg_quote( $pattern->path, '#' ); @@ -321,6 +363,8 @@ class PathRouterPatternReplacer { * We do this inside of a replacement callback because after replacement we can't tell the * difference between a $1 that was not replaced and a $1 that was part of * the content a $1 was replaced with. + * @param $value string + * @return string */ public function replace( $value ) { $this->error = false; @@ -331,6 +375,10 @@ class PathRouterPatternReplacer { return $value; } + /** + * @param $m array + * @return string + */ protected function callback( $m ) { if ( $m[1] == "key" ) { if ( is_null( $this->key ) ) {