Overview

Namespaces

  • None
  • Wei
    • Validator

Classes

  • Wei\Validator\All
  • Wei\Validator\AllOf
  • Wei\Validator\Alnum
  • Wei\Validator\Alpha
  • Wei\Validator\BaseValidator
  • Wei\Validator\Between
  • Wei\Validator\Blank
  • Wei\Validator\Callback
  • Wei\Validator\CharLength
  • Wei\Validator\Chinese
  • Wei\Validator\Color
  • Wei\Validator\Contains
  • Wei\Validator\CreditCard
  • Wei\Validator\Date
  • Wei\Validator\DateTime
  • Wei\Validator\Decimal
  • Wei\Validator\Digit
  • Wei\Validator\Dir
  • Wei\Validator\DivisibleBy
  • Wei\Validator\DoubleByte
  • Wei\Validator\Email
  • Wei\Validator\EndsWith
  • Wei\Validator\EqualTo
  • Wei\Validator\Exists
  • Wei\Validator\FieldExists
  • Wei\Validator\File
  • Wei\Validator\GreaterThan
  • Wei\Validator\GreaterThanOrEqual
  • Wei\Validator\IdCardCn
  • Wei\Validator\IdCardHk
  • Wei\Validator\IdCardMo
  • Wei\Validator\IdCardTw
  • Wei\Validator\IdenticalTo
  • Wei\Validator\Image
  • Wei\Validator\In
  • Wei\Validator\Ip
  • Wei\Validator\Length
  • Wei\Validator\LessThan
  • Wei\Validator\LessThanOrEqual
  • Wei\Validator\Lowercase
  • Wei\Validator\Luhn
  • Wei\Validator\MaxLength
  • Wei\Validator\MinLength
  • Wei\Validator\MobileCn
  • Wei\Validator\NaturalNumber
  • Wei\Validator\NoneOf
  • Wei\Validator\Null
  • Wei\Validator\Number
  • Wei\Validator\OneOf
  • Wei\Validator\Password
  • Wei\Validator\Phone
  • Wei\Validator\PhoneCn
  • Wei\Validator\PlateNumberCn
  • Wei\Validator\PositiveInteger
  • Wei\Validator\PostcodeCn
  • Wei\Validator\Present
  • Wei\Validator\QQ
  • Wei\Validator\RecordExists
  • Wei\Validator\Regex
  • Wei\Validator\Required
  • Wei\Validator\SomeOf
  • Wei\Validator\StartsWith
  • Wei\Validator\Time
  • Wei\Validator\Tld
  • Wei\Validator\Type
  • Wei\Validator\Uppercase
  • Wei\Validator\Url
  • Wei\Validator\Uuid
  • Overview
  • Namespace
  • Function
 1: <?php
 2: /**
 3:  * Wei Framework
 4:  *
 5:  * @copyright   Copyright (c) 2008-2015 Twin Huang
 6:  * @license     http://opensource.org/licenses/mit-license.php MIT License
 7:  */
 8: 
 9: namespace Wei;
10: 
11: /**
12:  * A helper service to generate the URL
13:  *
14:  * @author      Twin Huang <twinhuang@qq.com>
15:  * @property    Request $request A service that handles the HTTP request data
16:  */
17: class Url extends Base
18: {
19:     /**
20:      * Generate the URL by specified URL and parameters
21:      *
22:      * @param string $url
23:      * @param string|array $argsOrParams
24:      * @param string|array $params
25:      * @return string
26:      */
27:     public function __invoke($url = '', $argsOrParams = array(), $params = array())
28:     {
29:         return $this->request->getBaseUrl() . '/' . $this->append($url, $argsOrParams, $params);
30:     }
31: 
32:     /**
33:      * Generate the absolute URL path by specified URL and parameters
34:      *
35:      * @param string $url
36:      * @param string|array $argsOrParams
37:      * @param string|array $params
38:      * @return string
39:      */
40:     public function full($url, $argsOrParams = array(), $params = array())
41:     {
42:         return $this->request->getUrlFor($this->__invoke($url, $argsOrParams, $params));
43:     }
44: 
45:     /**
46:      * Generate the URL path with current query parameters and specified parameters
47:      *
48:      * @param string $url
49:      * @param string|array $argsOrParams
50:      * @param string|array $params
51:      * @return string
52:      */
53:     public function query($url = '', $argsOrParams = array(), $params = array())
54:     {
55:         return $this->__invoke($url, $argsOrParams, $params + $this->request->getQueries());
56:     }
57: 
58:     /**
59:      * Append parameters to specified URL
60:      *
61:      * @param string $url
62:      * @param string|array $argsOrParams The arguments to replace in URL or the parameters append to the URL
63:      * @param string|array $params The parameters append to the URL
64:      * @return string
65:      */
66:     public function append($url = '', $argsOrParams = array(), $params = array())
67:     {
68:         if (strpos($url, '%s') !== false) {
69:             $url = vsprintf($url, (array)$argsOrParams);
70:         } else {
71:             $params = $argsOrParams;
72:         }
73:         if ($params) {
74:             $url .= (false === strpos($url, '?') ? '?' : '&');
75:         }
76:         return $url . (is_array($params) ? http_build_query($params) : $params);
77:     }
78: }
79: 
Wei Framework API documentation generated by ApiGen