]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - extlib/Net/URL/Mapper/Part/Wildcard.php
Move Mapper to correct spot in the hierarchy
[quix0rs-gnu-social.git] / extlib / Net / URL / Mapper / Part / Wildcard.php
1 <?php
2 /**
3  * URL parser and mapper
4  *
5  * PHP version 5
6  *
7  * LICENSE:
8  * 
9  * Copyright (c) 2006, Bertrand Mansion <golgote@mamasam.com>
10  * All rights reserved.
11  *
12  * Redistribution and use in source and binary forms, with or without
13  * modification, are permitted provided that the following conditions
14  * are met:
15  *
16  *    * Redistributions of source code must retain the above copyright
17  *      notice, this list of conditions and the following disclaimer.
18  *    * Redistributions in binary form must reproduce the above copyright
19  *      notice, this list of conditions and the following disclaimer in the 
20  *      documentation and/or other materials provided with the distribution.
21  *    * The names of the authors may not be used to endorse or promote products 
22  *      derived from this software without specific prior written permission.
23  *
24  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
25  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
26  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
27  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
28  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
29  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
30  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
31  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
32  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
33  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
34  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35  *
36  * @category   Net
37  * @package    Net_URL_Mapper
38  * @author     Bertrand Mansion <golgote@mamasam.com>
39  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
40  * @version    CVS: $Id: Wildcard.php,v 1.1 2007/03/28 10:23:04 mansion Exp $
41  * @link       http://pear.php.net/package/Net_URL_Mapper
42  */
43
44 require_once 'Net/URL/Mapper/Part.php';
45
46 class Net_URL_Mapper_Part_Wildcard extends Net_URL_Mapper_Part
47 {
48     
49     public function __construct($content, $path)
50     {
51         $this->type = Net_URL_Mapper_Part::WILDCARD;
52         $this->setRequired(true);
53         parent::__construct($content, $path);
54     }
55
56     public function getFormat()
57     {
58         return $this->addSlashRegex('.*');;
59     }
60
61     public function getRule()
62     {
63         return '(?P<'.$this->content.'>'.$this->addSlashRegex('.*').')';
64     }
65
66     public function generate($value = null)
67     {
68         if (is_array($value) && isset($value[$this->content])) {
69             $val = $value[$this->content];
70         } elseif (!is_array($value) && !is_null($value)) {
71             $val = $value;
72         } else {
73             $val = $this->defaults;
74         }
75         return $this->addSlash(str_replace(
76             array('%2F', '%23'), 
77             array('/', '#'), urlencode($val)));
78     }
79 }
80 ?>