ocramius/optional

该包已被废弃且不再维护。作者建议使用whsv26/functional包代替。

将java.util.Optional类移植到PHP

1.0.0 2019-03-12 10:02 UTC

README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Latest Unstable Version License

本包是OpenJDK库中java.util.Optional类的PHP移植。

目前由Niklas Schöllhorn维护,接管于2019年3月3日

您可以在Java 8 API文档中找到java.lang.Optional的API。

安装

composer require ocramius/optional

与Java实现的差异

由于PHP当前的局限性,我不得不按照以下方式重写Java实现的一些部分

  • Optional#empty()被命名为Optional#newEmpty(),因为empty是PHP的保留关键字
  • 类型安全在任何时候都不能保证:泛型已被从Optional实现中删除。这可能在将来改变,但我目前没有计划这么做。
  • Optional#toString()被命名为Optional#__toString(),以符合PHP魔术方法命名
  • ConsumerPredicateFunctionSupplier参数简单地被定义为callable,以保持简单和灵活性。

许可

由于这个库是OpenJDK源的直接移植,我必须保留原始许可,即GPLv2 + ClassPath异常。