extalion / php-strict-array
通用数组(向量、映射)生成器
0.1.0
2019-12-18 21:41 UTC
Requires
- php: ^7.2
- extalion/php-enum: ^0.1
- symfony/console: ^5.0
- twig/twig: ^2.12
Requires (Dev)
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-13 02:38:43 UTC
README
根据这篇文章 创建Php7中的严格类型数组和集合,php-strict-array 应运而生。
关于PHP中的泛型有一些讨论,但谁知道它何时会到来。
它并不完全像你从 Java 或 C++ 中了解的泛型,泛型看起来像 array<bool>()
或 array<string, \Foo\User>()
。
这里的严格数组看起来像 array_int_
、array_bool_
和 array_string_and_float_
,所以我希望当它们成为原生PHP的一部分时,你所需做的只是
- 将所有
new array_User
、new array_string_and_array_object__
替换为array<User>
、array<string, array<object>>
。
现在你不需要在你的包内验证用户提供的数组
function foo(array $users) { foreach ($users as $user) { if (!$user instanceof User) { thorw new \InvalidArgumentException(); } } ... }
你的代码可以变得更加简单
function foo(array_User_ $users) { ... }
安装
composer require eXtalion/php-strict-array
基本严格数组
一些基本数组已生成
array_array_
,array_bool_
,array_callable_
,array_float_
,array_int_
,array_iterable_
,array_object_
,array_string_
,array_string_and_array_
,array_string_and_bool_
,array_string_and_callable_
,array_string_and_float_
,array_string_and_int_
,array_string_and_iterable_
,array_string_and_object_
,array_string_and_string_
.
创建新的严格数组
运行
vendor/bin/php-sa [path/to/arrays-dir]
并回答几个问题。如果没有 path/to/arrays-dir,代码将显示到STDOUT。
这是一个“普通”数组
有一些数组函数可以与严格数组一起使用
sarray_filter
,sarray_key_exists
,sarray_keys
,sarray_search
,sarray_values
.