tdn/php-types

此包已弃用且不再维护。作者建议使用typing/types包。

PHP原始包装库。

2.0.1 2015-09-22 09:30 UTC

README

Dependency Status GitHub issues Total Downloads License Latest Stable Version Scrutinizer Code Quality Travis Coverage Status SensioLabsInsight

PhpTypes

Types

  • StringType
  • BooleanType
  • IntType*
  • FloatType*
  • DateTime
  • Collection

* 如果已安装,将智能使用bcmathgmp

等等,这是什么?

PHP的装箱/拆箱原始包装器。即使在重新赋值时也能保持强类型(类似于SPL_Types)。

使用PHP领域中流行的库,并将它们整齐地包装在一个仓库中,为装饰器提供额外的功能。

这是一个尝试为PHP创建类似于Java核心库的尝试,遗憾的是没有上下文转换或原始类型转换的魔法方法**,但已经很接近了。

* 基于意见,但由Packagist下载支持 =)

** 关于装箱和类型转换方法的RFC,这些方法从未被接受[1, 2]

类型致谢
Doctrine Collections & Doctrine Inflector Doctrine Stringy
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文件。