webname路由获取别名

supereric

找了文档,源码都没有发现获取路由别名的方法,于是自己在webman源码下小小修改了一下代码,希望以后更新版本中能增加获取路由别名的方法~

vendor/workerman/webman-framework/src/Route.php 增加以下代码

    protected static $_callBackName = [];

    public static function setCallBackByName($callBack,$name){
        self::$_callBackName[$callBack] = $name;
    }

    public static function getCallBackByName($callBack){
        return self::$_callBackName[$callBack]??'';
    }

    public static function getAllCallBack(){
        return self::$_callBackName;
    }

    public static function getCurrentName(){
        return self::getCallBackByName(self::getCurrentCallBack());
    }

    public static function getCurrentCallBack(){
        $request = App::request();
        return $request->controller.'@'.$request->action;
    }

vendor/workerman/webman-framework/src/Route/Route.php
76行 public function name 函数下增加代码

public function name($name)
    {
        $this->_name = $name;
        Router::setByName($name, $this);
        Router::setCallBackByName($this->_callback,$name); //增加这行代码
        return $this;
    }

调用方法为

use Webman\Route;
Route::getCurrentName();

当然要注意的是路由代码为

Route::any('/siteConfig/index', 'app\admin\controller\siteConfig@index')->name('siteConfigIndex');

当然我是很不喜欢修改源码。
可是我很喜欢这个框架,在弄自己的后台管理系统。实在不得已改了一下。
修改此方法是为了权限管理。

阅读 544
1个回答

askuiop

我也觉得能获取路由名称是有必要的。

  • 暂无评论