From 237411ea575639987ab0522eb3be672bc9edee78 Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 11 Aug 2007 23:37:28 +0000 Subject: more fix on TUrlMapping --- framework/Web/TUrlMapping.php | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'framework') diff --git a/framework/Web/TUrlMapping.php b/framework/Web/TUrlMapping.php index 987e725d..126a3b38 100644 --- a/framework/Web/TUrlMapping.php +++ b/framework/Web/TUrlMapping.php @@ -398,6 +398,8 @@ class TUrlMappingPattern extends TComponent private $_manager; + private $_caseSensitive=true; + /** * Constructor. * @param TUrlManager the URL manager instance @@ -444,8 +446,11 @@ class TUrlMappingPattern extends TComponent } $params[]='/'; $values[]='\\/'; - $regexp=str_replace($params,$values,trim($this->getPattern(),'/')); - return '/^'.$regexp.'$/u'; + $regexp=str_replace($params,$values,trim($this->getPattern(),'/').'/'); + $regexp='/^'.$regexp.'$/u'; + if(!$this->getCaseSensitive()) + $regexp.='i'; + return $regexp; } /** @@ -464,6 +469,22 @@ class TUrlMappingPattern extends TComponent $this->_regexp=$value; } + /** + * @return boolean whether the {@link getPattern Pattern} should be treated as case sensititve. Defaults to true. + */ + public function getCaseSensitive() + { + return $this->_caseSensitive; + } + + /** + * @param boolean whether the {@link getPattern Pattern} should be treated as case sensititve. + */ + public function setCaseSensitive($value) + { + $this->_caseSensitive=TPropertyValue::ensureBoolean($value); + } + /** * @param string service parameter, such as page class name. */ @@ -540,7 +561,7 @@ class TUrlMappingPattern extends TComponent if(($pattern=$this->getRegularExpression())!=='') preg_match($pattern,$request->getPathInfo(),$matches); else - preg_match($this->getParameterizedPattern(),trim($request->getPathInfo(),'/'),$matches); + preg_match($this->getParameterizedPattern(),trim($request->getPathInfo(),'/').'/',$matches); return $matches; } -- cgit v1.2.3