martindilling / basicvalueobjects
基本值对象集合。
0.2.2
2015-02-14 16:37 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
README
一组最基本值对象的小集合。这可以帮助使你的代码更具表达性,并节省一些手动验证。
安装
所有可用版本均可在 Packagist 上查看。
通过 Composer
$ composer require martindilling/basicvalueobjects
用法
使用这些值对象,你可以对方法参数进行类型提示,以确保参数将以正确的格式提供。
在此示例中,字段将包含值对象的实例。
use BasicValueObjects\String; use BasicValueObjects\Integer; use BasicValueObjects\Boolean; class CrewMember { /** @var \BasicValueObjects\String */ private $firstname; /** @var \BasicValueObjects\String */ private $lastname; /** @var \BasicValueObjects\Integer */ private $age; /** @var \BasicValueObjects\Boolean */ private $captain; function __construct(String $firstname, String $lastname, Integer $age, Boolean $captain) { $this->firstname = $firstname; $this->lastname = $lastname; $this->age = $age; $this->captain = $captain; } } $person = new CrewMember( new String('Malcolm'), new String('Reynolds'), new Integer(49), Boolean::true() );
如果你不想对象上的字段包含实例,但想进行类型提示,只需将值对象的原始值赋给字段即可
use BasicValueObjects\String; use BasicValueObjects\Integer; use BasicValueObjects\Boolean; class CrewMember { /** @var string */ private $firstname; /** @var string */ private $lastname; /** @var int */ private $age; /** @var bool */ private $captain; function __construct(String $firstname, String $lastname, Integer $age, Boolean $captain) { $this->firstname = $firstname->native(); $this->lastname = $lastname->native(); $this->age = $age->native(); $this->captain = $captain->native(); } } $person = new CrewMember( new String('River'), new String('Tam'), new Integer('28'), Boolean::false() );
如何使用值对象的演示
// String $shiny = new String("Everything's shiny, Cap'n. Not to fret."); $fool = new String("Oh, she'll fool ya."); $shiny->native(); // (string) Everything's shiny, Cap'n. Not to fret. $fool->__toString(); // (string) Oh, she'll fool ya. $shiny->equals($fool); // (bool) false // Integer $integer1 = new Integer(42); $integer2 = new Integer(37); $integer1->native(); // (integer) 42 $integer2->__toString(); // (string) 37 $integer1->equals($integer2); // (bool) false // Boolean $boolean1 = new Boolean(true); $boolean2 = new Boolean(Boolean::TRUE); $boolean3 = Boolean::false(); $boolean1->native(); // (bool) true $boolean2->__toString(); // (string) true $boolean1->equals($boolean2); // (bool) true $boolean1->equals($boolean3); // (bool) false
测试
$ phpunit
贡献
请参阅 CONTRIBUTING 获取详细信息。
安全
如果你发现任何与安全相关的问题,请通过电子邮件 martindilling@gmail.com 而不是使用问题跟踪器。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。