tdn / php-types
2.0.1
2015-09-22 09:30 UTC
Requires
- php: >=5.4.0
- danielstjules/stringy: ~2
- doctrine/inflector: ~1
- nesbot/carbon: ~1
Requires (Dev)
- bruli/php-git-hooks: ~1.3
- phpunit/phpunit: ~4.7
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: ~2.2
This package is not auto-updated.
Last update: 2021-06-10 15:51:00 UTC
README
PhpTypes
Types
- StringType
- BooleanType
- IntType*
- FloatType*
- DateTime
- Collection
等等,这是什么?
PHP的装箱/拆箱原始包装器。即使在重新赋值时也能保持强类型(类似于SPL_Types)。
使用PHP领域中流行的库,并将它们整齐地包装在一个仓库中,为装饰器提供额外的功能。
这是一个尝试为PHP创建类似于Java核心库的尝试,遗憾的是没有上下文转换或原始类型转换的魔法方法**,但已经很接近了。
* 基于意见,但由Packagist下载支持 =)
** 关于装箱和类型转换方法的RFC,这些方法从未被接受[1, 2]
类型致谢



LOL! 为什么?
许多原因!
- 核心原始包装器不足:底层库(carbon、stringy、doctrine collections & inflector)都非常流行。如果有一个核心库内置到语言中,拥有这样的接口会很好。
- 流畅/一致的用户界面:我们喜爱的PHP因其数组和字符串函数中参数的翻转而臭名昭著。
- 为什么不呢? 编写代码很有趣。
库功能齐全,但这主要是一个概念。原始类型总是比对象提供更高的性能。
示例/说明
更多示例位于example.php
/** @var StringType $string */ StringType::box($string, 'foo'); echo $string; // foo $string = 'bar is fun'; //Remains boxed as instance of StringType. echo $string->dasherize(); // bar-is-fun try { //Throws "TypeError" exception. $string = false; } catch (\TypeError $e) { .... }
文档
要求
PHP 7.0或更高版本。
安装
使用CLI
php composer.phar require tdn/php-types:*@stable
在composer.json
文件中
{ "require": { "tdn/php-types": "*@stable" } }
API
请查看在线API或克隆仓库并运行vendor/bin/robo documentation:build
来构建本地文档。
贡献
如果您想贡献,请阅读CONTRIBUTING。
许可证
本库遵循MIT许可协议发布。完整的许可协议请查看LICENSE文件。