think\Route::domain PHP Method

domain() public static method

注册子域名部署规则
public static domain ( string | array $domain, mixed $rule = '', array $option = [], array $pattern = [] ) : void
$domain string | array 子域名
$rule mixed 路由规则
$option array 路由参数
$pattern array 变量规则
return void
    public static function domain($domain, $rule = '', $option = [], $pattern = [])
    {
        if (is_array($domain)) {
            foreach ($domain as $key => $item) {
                self::domain($key, $item, $option, $pattern);
            }
        } elseif ($rule instanceof \Closure) {
            // 执行闭包
            self::setDomain($domain);
            call_user_func_array($rule, []);
            self::setDomain(null);
        } elseif (is_array($rule)) {
            self::setDomain($domain);
            self::group('', function () use($rule) {
                // 动态注册域名的路由规则
                self::registerRules($rule);
            }, $option, $pattern);
            self::setDomain(null);
        } else {
            self::$rules['domain'][$domain]['[bind]'] = [$rule, $option, $pattern];
        }
    }

Usage Example

Ejemplo n.º 1
0
 public function testBuildDomain()
 {
     Config::set('url_domain_deploy', true);
     Route::domain('subdomain.thinkphp.cn', 'admin');
     $this->assertEquals('http://subdomain.thinkphp.cn/blog/10.shtml', Url::build('/blog/10'));
     Route::domain('subdomain.thinkphp.cn', ['hello/:name' => 'index/hello']);
     $this->assertEquals('http://subdomain.thinkphp.cn/hello/thinkphp.shtml', Url::build('index/hello?name=thinkphp'));
 }
All Usage Examples Of think\Route::domain