yiisoft / translator-message-db
Yii翻译器数据库消息存储
1.0.0
2023-05-09 18:37 UTC
Requires
- php: ^8.0
- ext-json: *
- yiisoft/arrays: ^2.0|^3.0
- yiisoft/cache: 2.0
- yiisoft/db: ^1.0
- yiisoft/translator: ^2.2
Requires (Dev)
- maglnet/composer-require-checker: ^4.2
- phpunit/phpunit: ^9.6|^10.1
- rector/rector: ^0.16
- roave/infection-static-analysis-plugin: ^1.25|^1.29
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.8|^5.8
This package is auto-updated.
Last update: 2024-08-28 04:16:23 UTC
README
Yii翻译器数据库消息存储
该包提供了基于数据库的消息存储后端,用于与yiisoft/translator
包一起使用。
支持的数据库
要求
- PHP 8.0或更高版本。
- PHP的
json
扩展。
安装
可以使用Composer安装该包
composer require yiisoft/translator-message-db
创建数据库连接
更多信息请参阅yiisoft/db。
数据库准备
包提供了两种数据库准备方式
-
原始SQL。您可以使用它与您的应用程序中使用的迁移包一起使用。
-
确保表存在
-
确保没有表
-
-
使用
DbSchemaManager
的ensureTables()
和ensureNoTables()
方法确保翻译表(默认为{{%yii_source_message}}
和{{%yii_message}}
)存在。
配置
快速开始
如果您使用yiisoft/config
,您将自动获取配置。如果没有,则需要以下DI容器配置
use Yiisoft\Translator\MessageReaderInterface; use Yiisoft\Translator\Message\Db\MessageSource; return [ MessageReaderInterface::class => [ 'class' => MessageSource::class, ], ];
通用用法
创建MessageSource实例
/** @var \Yiisoft\Db\Connection\ConnectionInterface $db */ $messageSource = new \Yiisoft\Translator\Message\Db\MessageSource($db);
创建带缓存的MessageSource实例
/** @var \Yiisoft\Db\Connection\ConnectionInterface $db */ /** @var \Yiisoft\Cache\CacheInterface $cache */ $cacheDuration = 7200; // The TTL of this value. If set to null, default value is used - 3600 $messageSource = new \Yiisoft\Translator\Message\Db\MessageSource($db, $cache, $cacheDuration);
在不使用yiisoft/translator
包的情况下读取消息
/** * @var \Yiisoft\Translator\Message\Db\MessageSource $messageSource * @var ?string $translatedString */ $id = 'messageIdentificator'; $category = 'messageCategory'; $language = 'de-DE'; $translatedString = $messageSource->getMessage($id, $category, $language);
将数组中的消息写入存储
/** * @var \Yiisoft\Translator\Message\Db\MessageSource $messageSource */ $category = 'messageCategory'; $language = 'de-DE'; $data = [ 'test.id1' => [ 'message' => 'Nachricht 1', // translated string 'comment' => 'Comment for message 1', // is optional parameter for save extra metadata ], 'test.id2' => [ 'message' => 'Nachricht 2', ], 'test.id3' => [ 'message' => 'Nachricht 3', ], ]; $messageSource->write($category, $language, $data);
文档
如果您需要帮助或有问题,Yii论坛是不错的选择。您还可以查看其他Yii社区资源。
许可证
Yii翻译器数据库消息存储是免费软件。它根据BSD许可证发布。有关更多信息,请参阅LICENSE
。
由Yii Software维护。