在flea/filter/ 目錄下增加乙個檔案,叫做namespaceuri.php,裡面內容如下:
<?php
/** * 增加命名空間支援 -- 將命名空間掛接到控制器名稱之前
*/function ___namespace_urlrewrite_filter()
$firsttime = false;
foreach ($_ as $k=>$v)
$pathinfo = !empty($_server['path_info']) ?
$_server['path_info'] :
(!empty($_server['orig_path_info']) ? $_server['orig_path_info'] : '');
$parts = explode('/', substr($pathinfo, 1));
// 初始化變數
$namespace = $defaultnamespace ;
$controllername = $actionname = null ;
// 如果是重寫的url,pathinfo 則有值,標準uri的話,pathinfo取不到值
if (isset($parts[0]) && strlen($parts[0]))
}if ($namespace == $defaultnamespace)else
if ($style == '/')
}} else }}
}// 設定最後的命名空間/控制器/action的值
if (isset($_get[$namespaceaccessor]) && strlen($_get[$namespaceaccessor]))
$_get[$namespaceaccessor] = $namespace ;
if (isset($_get[$controlleraccessor]) && strlen($_get[$controlleraccessor]))
$prefix = strlen($namespaces[$namespace]) ? "_" : '' ;
$_get[$controlleraccessor] = $prefix . ucwords($controllername) ;
if (isset($_get[$actionaccessor]) && strlen($_get[$actionaccessor]))
// 將 $_get 合併到 $_request,
// 有時需要使用 $_request 統一處理 url 中的 id=? 這樣的引數
$_request = array_merge($_request, $_get);
}/**
* 增加命名空間支援 -- 將命名空間掛接到控制器名稱之前
*/function ___namespace_urlstandard_filter()
$firsttime = false;
foreach ($_ as $k=>$v)
// 初始化變數
$namespace = $defaultnamespace ;
$controllername = $actionname = null ;
// 設定最後的命名空間/控制器/action的值
if (isset($_get[$namespaceaccessor]) && strlen($_get[$namespaceaccessor]))
$_get[$namespaceaccessor] = $namespace ;
if (isset($_get[$controlleraccessor]) && strlen($_get[$controlleraccessor]))
$prefix = strlen($namespaces[$namespace]) ? "_" : '' ;
$_get[$controlleraccessor] = $prefix . ucwords($controllername) ;
if (isset($_get[$actionaccessor]) && strlen($_get[$actionaccessor]))
// 將 $_get 合併到 $_request,
// 有時需要使用 $_request 統一處理 url 中的 id=? 這樣的引數
$_request = array_merge($_request, $_get);
}/**
* 增加命名空間支援 -- 將控制器名稱轉化成 命名空間/控制器名稱
* * @return string
*/function ___namespacetouri($controllername=null,$isurlrewrite=true)
*/i",$controllername))*/i",'',$controllername);
break ;
}} }
if ($isurlrewrite)else
} ___namespace_urlrewrite_filter() ;
}else
修改 flea.php 檔案中的幾行:
找到: 並注釋掉
// 根據 url 模式設定,決定是否要載入 url 分析過濾器
// require(flea_dir . '/filter/uri.php');
// }
增加一行: require(flea_dir . '/filter/namespaceuri.php');
修改url方法裡面的**:
找到 : // pathinfo 和 rewrite 模式 注釋處,在下面繼續找到 $url .= '/' . rawurlencode($controllername);
將其注釋掉,加上一行 $url .= ___namespacetouri($controllername,true);
找到 : // 標準模式 注釋處,在下面繼續找到:
if ($controllername != $defaultcontroller && !is_null($controllername)) {
// $url .= $parajoin . rawurlencode($controllername); @注釋掉這裡的**
// 修改為:
$url .= $parajoin . ___namespacetouri($controllername,false);
此時全部修改完成,在 專案的配置檔案中加入:
'namespaces' => array(
'blog' => 'blog' ,
'default' => '' ,
) ,
從瀏覽器訪問: /blog/news/list/page/3/cat/internet
則會 自動定位到 url('blog_news','list',array('page'=>3,'cat'=>'internet'))
置頂 讓FLEAPHP支援簡易的命名空間
在flea filter 目錄下增加乙個檔案,叫做namespaceuri.php,裡面內容如下 增加命名空間支援 將命名空間掛接到控制器名稱之前 function namespace urlrewrite filter firsttime false foreach as k v pathinfo...
讓人迷惑的命名
讓人迷惑的命名 jdk1.5中的string的兩個方法replace和replaceall。從名字你絕對猜不到replaceall的真正用途。string replace char oldchar,char newchar 返回乙個新的字串,它是通過用newchar替換此字串中出現的所有oldcha...
讓docbook支援顏色的渲染
docbook預設是不能夠對字型進行顏色設定的。但是通過擴充套件可以達到對html和pdf輸出的顏色設定。一 首先,我們來談論一下如何對html的輸出進行顏色設定。對html的輸出情況下要簡單一些,只需要通過css樣式控制即可,而且這個docbook是內嵌支援的。在docbook的xml檔案中,我們...