wandersonwhcr / zend-romans
v1.0.2
2017-04-23 15:28 UTC
Requires
- php: ^7.0
- wandersonwhcr/romans: ^1.0
- zendframework/zend-filter: 2.7.*
- zendframework/zend-hydrator: 2.2.*
- zendframework/zend-validator: 2.9.*
- zendframework/zend-view: 2.9.*
Requires (Dev)
- jakub-onderka/php-parallel-lint: 0.9.*
- phpmd/phpmd: 2.6.*
- phpunit/phpunit: 6.1.*
- sebastian/phpcpd: 3.0.*
- squizlabs/php_codesniffer: 2.8.*
- zendframework/zend-modulemanager: 2.7.*
- zendframework/zend-mvc: 3.0.*
- zendframework/zend-servicemanager: 3.3.*
Suggests
- zendframework/zend-modulemanager: Needed to load this package as Zend Framework module
- zendframework/zend-servicemanager: Allows the use of service factories into Zend Framework
README
已过时 使用 Laminas 项目 Romans 集成
描述
此包为 Romans 库提供了 Zend 框架集成,提供了工具将罗马数字字符串转换为整数以及相反操作,验证包含此类数字的字符串,最后将这些内容填充为整数。
安装
此包默认使用 Composer 作为仓库。您可以通过在 composer.json
文件的 require
属性中添加包名称来安装它,指向最后一个稳定版本。
{ "require": { "wandersonwhcr/zend-romans": "^1.0" } }
使用方法
此包提供了过滤器、验证器和填充器,可用于与 Zend 框架项目一起使用。此外,此包还作为 Zend 框架模块提供,自动配置应用程序内的服务,但此操作不是必需的。
过滤器
Zend Romans 提供了一组过滤器,用于将罗马数字字符串转换为整数,以及将整数转换为表示输入为罗马数字的字符串。
use Zend\Romans\Filter\RomanToInt as RomanToIntFilter; use Zend\Romans\Filter\IntToRoman as IntToRomanFilter; $value = 'MCMXCIX'; $filter = new RomanToIntFilter(); $value = $filter->filter($value); // 1999 $filter = new IntToRomanFilter(); $value = $filter->filter($value); // MCMXCIX
验证器
此外,此包还包括一个验证器,用于验证字符串是否包含有效的罗马数字。
use Zend\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"', ]; */
填充器
存在一个填充器策略,负责处理罗马数字。像任何其他 Zend 框架策略一样,对于错误将抛出异常。
use InvalidArgumentException; use Zend\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 Zend\Romans\View\Helper\Roman as RomanViewHelper; $helper = new RomanViewHelper(); // Simple Access echo $helper(1999); // MCMXCIX // ... or Inside ViewRenderer echo $this->roman(1999); // MCMXCIX
模块
此包作为 Zend 框架模块提供。要初始化此模块,请将包命名空间添加到应用程序已加载模块的配置中。
<?php return [ 'modules' => [ // ... 'Zend\Romans', // ... ], ];
使用此功能时,必须在您的 composer.json
文件中要求 Zend 框架 ModuleManager 和 ServiceManager。
{ "require": { "zendframework/zend-modulemanager": "2.7.*", "zendframework/zend-servicemanager": "3.3.*" } }
可用的服务
如果您将此包配置为 Zend 框架模块,将配置许多服务。以下列表显示了使用 Zend\Romans
模块可用的所有服务。带有双箭头的项代表服务别名。
Romans\Grammar\Grammar
Romans\Lexer\Lexer
Romans\Parser\Parser
Romans\Filter\IntToRoman
Romans\Filter\RomanToInt
Zend\Romans\Hydrator\Strategy\Roman
FilterManager
Zend\Romans\Filter\IntToRoman
Zend\Romans\Filter\RomanToInt
IntToRoman
=>Zend\Romans\Filter\IntToRoman
intToRoman
=>Zend\Romans\Filter\IntToRoman
inttoroman
=>Zend\Romans\Filter\IntToRoman
RomanToInt
=>Zend\Romans\Filter\RomanToInt
romanToInt
=>Zend\Romans\Filter\RomanToInt
romantoint
=>Zend\Romans\Filter\RomanToInt
验证器管理器
Zend\Romans\Validator\Roman
Roman
=>Zend\Romans\Validator\Roman
roman
=>Zend\Romans\Validator\Roman
视图助手管理器
Zend\Romans\View\Helper\Roman
Roman
=>Zend\Romans\View\Helper\Roman
roman
=>Zend\Romans\View\Helper\Roman
许可证
此软件包是开源的,可在LICENSE中描述的MIT许可证下获取。