路由綁定

可以使用路由綁定簡化URL或者路由規(guī)則的定義,綁定支持如下方式:

綁定到模塊/控制器/操作

把當(dāng)前的URL綁定到模塊/控制器/操作,最多支持綁定到操作級別,例如在路由配置文件中添加:

// 綁定當(dāng)前的URL到 index模塊
Route::bind('index');
// 綁定當(dāng)前的URL到 index模塊的blog控制器
Route::bind('index/blog');
// 綁定當(dāng)前的URL到 index模塊的blog控制器的read操作
Route::bind('index/blog/read');

該方式針對路由到模塊/控制器/操作有效,假如我們綁定到了index模塊的blog控制器,那么原來的訪問URL從

http://serverName/index/blog/read/id/5

可以簡化成

http://serverName/read/id/5

如果定義了路由

Route::get('index/blog/:id','index/blog/read');

那么訪問URL就變成了

http://serverName/5

綁定到命名空間

把當(dāng)前的URL綁定到某個指定的命名空間,例如:

// 綁定命名空間
Route::bind('\app\index\controller','namespace');

那么,我們接下來只需要通過

http://serverName/blog/read/id/5

就可以直接訪問 \app\index\controller\Blog類的read方法。

綁定到類

把當(dāng)前的URL直接綁定到某個指定的類,例如:

// 綁定到類
Route::bind('\app\index\controller\Blog','class');

那么,我們接下來只需要通過

http://serverName/read/id/5

就可以直接訪問 \app\index\controller\Blog類的read方法。

注意:綁定到命名空間和類之后,不會進(jìn)行模塊的初始化工作。

入口文件綁定

如果我們需要給某個入口文件綁定模塊,可以使用下面兩種方式:

常量定義

只需要入口文件添加BIND_MODULE常量,即可把當(dāng)前入口文件綁定到指定的模塊或者控制器,例如:

// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 綁定到index模塊
define('BIND_MODULE','index');
// 加載框架引導(dǎo)文件
require __DIR__ . '/../thinkphp/start.php';

自動入口綁定

如果你的入口文件都是對應(yīng)實際的模塊名,那么可以使用入口文件自動綁定模塊的功能,只需要在應(yīng)用配置文件中添加:

// 開啟入口文件自動綁定模塊
'auto_bind_module'  =>  true,

當(dāng)我們重新添加一個 public/demo.php入口文件,內(nèi)容和public/index.php一樣:

// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 加載框架引導(dǎo)文件
require __DIR__ . '/../thinkphp/start.php';

但其實訪問 demo.php的時候,其實已經(jīng)自動綁定到了demo模塊。

文檔最后更新時間:2018-04-25 19:35:10

文檔
目錄

深色
模式

切換
寬度