netherphp / object
自密封杆对象
v4.1.16
2023-03-02 02:42 UTC
Requires
- php: >=8.0
- phpunit/phpunit: ^9.5
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.1
- netherphp/standards: >=0.1.0
- dev-redux
- v4.1.16
- v4.1.15
- v4.1.14
- v4.1.13
- v4.1.12
- v4.1.11
- v4.1.10
- v4.1.9
- v4.1.8
- v4.1.6
- v4.1.5
- v4.1.4
- v4.1.3
- v4.1.2
- v4.1.1
- v4.1.0
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.0.12
- v3.0.11
- v3.0.10
- v3.0.9
- v3.0.8
- v3.0.7
- v3.0.6
- v3.0.5
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.1.9
- v2.1.8
- v2.1.7
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.1
- v2.0.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-master
- dev-AttributeBased
This package is auto-updated.
Last update: 2024-09-30 01:40:21 UTC
README
此包提供了一些工具,以帮助进行一些底层工作。
注意:该库的所有内容已合并到 Nether\Common
中,不应再使用。
类概述
Nether\Object\Prototype
原型对象是一个自密封的杆对象,能够重新映射模式,并确保属性在需要时存在默认值。使用此类作为父类可以启用完全基于属性的功能。
扩展此类将自动授予一个构造函数,该函数旨在处理从类似数据库数据行之类的来源提供的数据堆。它将查看类期望的属性,并在分配之前确保数据类型转换,以帮助避免类型错误。
简单示例
class BaseObject extends Nether\Object\Prototype { public int $ID; public string $Name; } $RowFromDB = [ 'ID'=> 1, 'Name'=> 'Bob' ]; $Obj = new BaseObject($RowFromDB);
Nether\Object\Datastore
提供类似数组的对象,以便可以将项存储为数组,但可以使用链式方法进行操作。它实现了 Iterable
、ArrayAccess
和 Countable
,并且还有许多用于处理单个集合数据的方法的集合。
简单示例
$Data = new Nether\Object\Datastore([ 1, 2, 3, 4, 5, 6 ]); // strip out odd numbers // then sort it big to small // then show me what we got. print_r( $Data ->Filter(fn(int $Val)=> ($Val % 2) == 0) ->Sort(fn(int $A, int $B)=> $B <=> $A) ->Values() ); // Array // ( // [0] => 6 // [1] => 4 // [2] => 2 // )
特质概述
类/方法/属性信息包。
这些特质被附加到任何类上时,为该类及其成员提供了静态辅助方法,用于读取有关该类及其成员的各种信息,包括 PHP 8 属性,以帮助进行元编程任务。扩展 Prototype
的类已经应用了这些特质。
Nether\Object\Package\ClassInfoPackage
简单示例
class MyClass { use Nether\Object\Package\ClassInfoPackage; } $ClassInfo = MyClass::GetClassInfo(); print_r($ClassInfo);
- 文档:uri-to-wikipage
Nether\Object\Package\MethodInfoPackage
简单示例
class MyClass { use Nether\Object\Package\MethodInfoPackage; public function GetID(): int { return 0; } } $Methods = MyClass::GetMethodIndex(); foreach($Methods as $Method) { print_r($Method); }
- 文档:uri-to-wikipage
Nether\Object\Package\PropertyInfoPackage
简单示例
class MyClass { use Nether\Object\Package\PropertyInfoPackage; public int $ID = 0; } $Props = MyClass::GetPropertyIndex(); foreach($Props as $Prop) { print_r($Prop); }
- 文档:uri-to-wikipage