wandersonwhcr / laminas-romans
Laminas 项目 Romans 集成
Requires
- php: >=7.4
- laminas/laminas-filter: 2.11.*
- laminas/laminas-hydrator: 4.1.*
- laminas/laminas-validator: 2.14.*
- laminas/laminas-view: 2.12.*
- wandersonwhcr/romans: 1.3.*
Requires (Dev)
- laminas/laminas-modulemanager: 2.10.*
- laminas/laminas-mvc: 3.2.*
- laminas/laminas-servicemanager: 3.6.*
- php-parallel-lint/php-parallel-lint: 1.2.*
- phpmd/phpmd: 2.9.*
- phpunit/phpunit: 9.5.*
- sebastian/phpcpd: 6.0.*
- squizlabs/php_codesniffer: 3.5.*
Suggests
- laminas/laminas-modulemanager: Needed to load this package as Laminas module
- laminas/laminas-servicemanager: Allows the use of service factories into Laminas
README
Laminas 项目 Romans 集成
描述
此软件包为 Romans 库提供 Laminas 项目的集成,提供将罗马数字字符串转换为整数以及相反方向的工具,验证包含此类数字的字符串,并最终将内容填充为整数。
安装
此软件包使用 Composer 作为默认存储库。您可以通过在 composer.json
的 require
属性中添加软件包名称,指向最新稳定版本来安装它。
{ "require": { "wandersonwhcr/laminas-romans": "^1.0" } }
使用方法
此软件包提供与 Laminas 项目一起使用的过滤器、验证器和填充器。此外,此软件包作为 Laminas 模块提供,可自动配置应用程序内的服务,但此操作不是必需的。
过滤器
Laminas Romans 提供了一组过滤器,用于将罗马数字字符串转换为整数以及相反方向的字符串表示。
use Laminas\Romans\Filter\RomanToInt as RomanToIntFilter; use Laminas\Romans\Filter\IntToRoman as IntToRomanFilter; $value = 'MCMXCIX'; $filter = new RomanToIntFilter(); $value = $filter->filter($value); // 1999 $filter = new IntToRomanFilter(); $value = $filter->filter($value); // MCMXCIX
验证器
此外,此软件包还包含一个验证器,用于验证字符串是否包含有效的罗马数字。
use Laminas\Romans\Validator\Roman as RomanValidator; $validator = new RomanValidator(); $result = $validator->isValid('MCMXCIX'); // true $result = $validator->isValid('IAI'); // false $messages = $validator->getMessages(); /* $messages = [ 'unknownToken' => 'Unknown token "A" at position 1', ]; */ $result = $validator->isValid('XIIIX'); // false $messages = $validator->getMessages(); /* $messages = [ 'invalidRoman' => 'Invalid Roman number "XIIX"', ]; */
填充器
存在一个填充器策略,负责处理罗马数字。像任何其他 Laminas 策略一样,错误将抛出异常。
use InvalidArgumentException; use Laminas\Romans\Hydrator\Strategy\Roman as RomanHydratorStrategy; $value = 'MCMXCIX'; $strategy = new RomanHydratorStrategy(); try { $value = $strategy->hydrate($value); // 1999 $value = $strategy->extract($value); // MCMXCIX } catch (InvalidArgumentException $e) { // unable to convert }
视图助手
最后,还有一个视图助手,可以将整数直接转换为罗马数字,使用内部过滤器来完成这项工作。
use Laminas\Romans\View\Helper\Roman as RomanViewHelper; $helper = new RomanViewHelper(); // Simple Access echo $helper(1999); // MCMXCIX // ... or Inside ViewRenderer echo $this->roman(1999); // MCMXCIX
模块
此软件包作为 Laminas 模块提供。要初始化此模块,将软件包命名空间添加到应用程序加载的模块配置中。
<?php return [ 'modules' => [ // ... 'Laminas\Romans', // ... ], ];
使用此功能,您必须在 composer.json
文件中要求 Laminas ModuleManager 和 ServiceManager。
{ "require": { "laminas/laminas-modulemanager": "2.10.*", "laminas/laminas-servicemanager": "3.6.*" } }
可用服务
如果您将此软件包配置为 Laminas 模块,将配置许多服务。下面的列表显示了与 Laminas\Romans
模块一起提供的所有服务。带有双箭头的条目表示服务别名。
Romans\Grammar\Grammar
Romans\Lexer\Lexer
Romans\Parser\Parser
Romans\Filter\IntToRoman
Romans\Filter\RomanToInt
Laminas\Romans\Hydrator\Strategy\Roman
FilterManager
Laminas\Romans\Filter\IntToRoman
Laminas\Romans\Filter\RomanToInt
IntToRoman
=>Laminas\Romans\Filter\IntToRoman
intToRoman
=>Laminas\Romans\Filter\IntToRoman
inttoroman
=>Laminas\Romans\Filter\IntToRoman
RomanToInt
=>Laminas\Romans\Filter\RomanToInt
romanToInt
=>Laminas\Romans\Filter\RomanToInt
romantoint
=>Laminas\Romans\Filter\RomanToInt
ValidatorManager
Laminas\Romans\Validator\Roman
Roman
=>Laminas\Romans\Validator\Roman
roman
=>Laminas\Romans\Validator\Roman
ViewHelperManager
Laminas\Romans\View\Helper\Roman
Roman
=>Laminas\Romans\View\Helper\Roman
roman
=>Laminas\Romans\View\Helper\Roman
开发
您可以使用 Docker Compose 来构建镜像并运行容器以开发测试此软件包。
docker-compose build
docker-compose run romans composer install
docker-compose run romans composer test
许可证
此软件包是开源的,可在 MIT 许可证下使用,该许可证描述在 LICENSE 中。