bztang-admin/app/common/route/ShopBackendRoute.php

59 lines
1.4 KiB
PHP

<?php
/**
* Created by PhpStorm.
*
*
*
* Date: 2021/8/20
* Time: 14:23
*/
namespace app\common\route;
use app\common\middleware\AdminPermission;
use app\common\services\Check;
use Illuminate\Support\Str;
class ShopBackendRoute extends AbstractShopRoute
{
public $namespace = 'app\\backend';
protected $middleware = [AdminPermission::class];
public function __construct($path)
{
parent::__construct($path);
}
public function shopMatch($routes, $first)
{
$namespace = $this->namespace;
$class_name = '';
$action = '';
if (class_exists($namespace.'\\controllers\\'.ucfirst(Str::camel($first)).'Controller')) {
$class_name = $namespace.'\\controllers\\'.ucfirst(Str::camel($first)).'Controller';
$action = array_shift($routes);
} else {
$namespace .= '\\modules\\'.$first;
$namespace_module = $namespace;
foreach ($routes as $route) {
if ($class_name) {
$action = $route;
break;
}
$controller = ucfirst(Str::camel($route)).'Controller';
if (class_exists($namespace.'\\controllers\\'.$controller)) {
$class_name = $namespace.'\\controllers\\'.$controller;
} elseif (class_exists($namespace_module.'\\controllers\\'.$controller)) {
$class_name = $namespace_module.'\\controllers\\'.$controller;
} else {
$namespace .= '\\'.$route;
$namespace_module .= '\\modules\\'.$route;
}
}
}
return [$class_name,$action];
}
}