validus / translation
为您的 Expressive 项目提供翻译。
2.0.0
2019-05-11 05:25 UTC
Requires
- php: ^7.2
- psr/container: ^1.0
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- symfony/config: ^4.2
- symfony/translation: ^4.2
- symfony/yaml: ^4.2
- willdurand/negotiation: ^2.3
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpstan/phpstan: ^0.10.3
- phpstan/phpstan-strict-rules: ^0.10.1
- phpunit/phpunit: ^7.0.1
This package is auto-updated.
Last update: 2024-09-19 08:51:24 UTC
README
为 zend expressive 项目提供翻译。
PSR-11 的 Symfony 翻译工厂,与 Zend 配置提供者。
安装
安装此包的最简单方法是使用 composer
$ composer require validus/translation
配置
完整的配置示例可以在 example/full-config.php 中找到。请注意,其中的值是默认值,且在您不更改它们的情况下无需提供。尽量保持您自己的配置尽可能简单。一个简单的配置示例可以在 example/simple-config.php 中找到
如果您的应用程序使用 zend-component-installer Composer 插件,则配置已完成;提供的 Validus\Translation\ConfigProvider 已注册翻译服务。
用法
Validus Translation 通过实现 PSR-15 接口,提供消耗 PSR-7 HTTP 消息实例的中间件。
将中间件添加到您的应用程序中
您可以在应用程序中的任何位置管道此中间件。如果您想使其在任何地方都可用,请在应用程序的早期管道它,在路由之前。例如,在 Expressive 中,您可以在 config/pipeline.php 文件中管道它
$app->pipe(\Validus\Translation\Middleware\TranslatorMiddleware::class);
在 Expressive 中,您可以在 config/routes.php 文件中路由时,或在 delegator factory 中这样做
$app->post('/login', [ \Validus\Translation\Middleware\TranslatorMiddleware::class, \User\Middleware\LoginHandler::class ]);
访问翻译器
如果您已将中间件添加到您的应用程序中,您可以从请求属性访问翻译器
public function handle(ServerRequestInterface $request): ResponseInterface { $translator = $request->getAttribute(TranslatorMiddleware::TRANSLATOR_ATTRIBUTE); // or simply $translator = $request->getAttribute('translator'); // do your thing return $response; }
或通过容器
use Symfony\Component\Translation\TranslatorInterface; $translator = $container->get(TranslatorInterface::class);