mvccore/ext-router-module-localization

MvcCore - 扩展 - 路由 - 带本地化的模块 - 扩展,用于在单个项目中管理多个网站以及管理网站本地化(语言或语言和地区,可选地包含在域名或URL地址的开始部分)。

v5.2.0 2023-12-12 13:07 UTC

This package is auto-updated.

Last update: 2024-09-12 14:53:18 UTC


README

Latest Stable Version License PHP Version

MvcCore 路由扩展,用于在单个项目中管理多个网站以及管理网站本地化(语言或语言和地区,可选地包含在URL地址域名部分或开始部分),通过域名路由定义,由模块属性在URL完成时指定。

此路由器是路由请求的方法,用于域级别本地化,带有参数或变量部分、命名空间、默认参数值等。

大纲

  1. 安装
  2. 功能
  3. 工作原理
  4. 用法

1. 安装

composer require mvccore/ext-router-module-localization

返回顶部

2. 功能

扩展具有以下扩展相同的特征

本地化可以包含在任何模块域名路由中,作为名为 <localization> 的参数,匹配URL请求,如下所示:

  • http://example.com/anything
  • http://en.example.com/anything
  • http://en-US.example.com/anything
  • http://de-DE.example.com/anything
new \MvcCore\Ext\Routers\Modules\Route([
    "pattern"              => "//[<localization>.]example.com",
    "module"               => "main",
    "constraints"          => ["localization" => "-a-zA-Z"],
]);

如果匹配的模块域名路由模式中没有包含 <localization> 参数,并且匹配的路由(或生成URL的路由)定义为本地化路由,则本地化参数必须在URL地址开始部分包含(或自动插入),如下所示:

  • http://example.com/anything
  • http://example.com/en/anything
  • http://example.com/en-US/anything
  • http://example.com/de-DE/anything URL地址中包含的精确度取决于高级路由配置,如允许的语言等...

返回顶部

3. 工作原理

扩展以与以下扩展相同的方式工作

路由器由上述扩展中命名的特质组成。

返回顶部

4. 用法

用法 - Bootstrap 初始化

将此代码添加到 /App/Bootstrap.php 或在 应用开始时,在应用路由或任何其他使用路由进行任何目的的扩展配置之前

$app = \MvcCore\Application::GetInstance();
$app->SetRouterClass('\MvcCore\Ext\Routers\ModuleLocalization');
...
// to get router instance for next configuration:
/** @var \MvcCore\Ext\Routers\ModuleLocalization $router */
$router = \MvcCore\Router::GetInstance();

所有其他特定用法和高级配置与以下扩展相同

返回顶部