cetver/yii2-language-url-manager

解析并创建包含语言信息的 Yii 框架 2.0 的 URL

安装数: 90,623

依赖项: 0

建议者: 0

安全: 0

星标: 6

关注者: 1

分支: 3

开放问题: 1

类型:yii2-extension

1.0.2 2018-03-04 13:06 UTC

This package is auto-updated.

Last update: 2024-09-16 03:49:02 UTC


README

Build Status Coverage Status

解析并创建包含语言的 URL

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一

composer require --prefer-dist cetver/yii2-language-url-manager

或在您的 composer.json 文件的 require 部分添加

"cetver/yii2-language-url-manager": "^1.0"

用法

更新 Web 应用程序配置文件

return [
    'components' => [
        'urlManager' => [
            'class' => 'cetver\LanguageUrlManager\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            /*
             * The list of available languages.
             */
            'languages' => ['en', 'ru'],
            /*
            or
            'languages' => function () {
                return \app\models\Language::find()->select('code')->column();
            },
            */
            /*
             * - true: processes the URL like "en.example.com"
             * - false: processes the URL like "example.com/en"
             * NOTE: If this property set to true, the domain containing a language, must be the first on the left side,
             * for example:
             * - en.it.example.com - is valid
             * - it.en.example.com - is invalid
             */
            'existsLanguageSubdomain' => false,
            /*
             * The regular expression patterns list, applied to path info, if there are matches, the request,
             * containing a language, will not be processed.
             * For performance reasons, the blacklist does not applied for URL creation (Take a look at an example).
             * @see \yii\web\Request::getPathInfo()
             * An example:
             * ```php
             * [
             *     '/^api.*$/'
             * ]
             * ```
             * - Requesting the blacklisted URL
             *   - $existsLanguageSubdomain = true
             *     - en.example.com/api (404 Not Found)
             *     - en.example.com/api/create (404 Not Found)
             *   - $existsLanguageSubdomain = false
             *     - example.com/en/api (404 Not Found)
             *     - example.com/en/api/create (404 Not Found)
             * - Creating the blacklisted URL
             *   - echo \yii\helpers\Html::a('API', ['api/index', Yii::$app->urlManager->queryParam => null]);
             */
            'blacklist' => [],
            /*
             * The query parameter name that contains a language.
             */
            'queryParam' => 'language'
        ],
    ]
];

测试

运行以下命令

composer create-project --prefer-source cetver/yii2-language-url-manager
cd yii2-language-url-manager
vendor/bin/codecept run unit

对于 I18N 支持,请参阅