palantir / descriptor
dev-master
2023-05-16 02:24 UTC
Requires
- php: ^8.2
Requires (Dev)
- phpunit/phpunit: ^10.1
This package is not auto-updated.
Last update: 2024-09-18 01:43:56 UTC
README
Palantir 是在反射类之上构建的流畅 API。其目的是提供一种强大且易于使用的方法来深入特定条件(参数等)。
实验性 API
这只是我试过的东西...谁知道这是否是个好主意(出于性能和/或用户体验的考虑)。底层使用了一系列新的集合对象和 FilterIterator
。
// Retrieves all methods for the `ClassDescriptor` class. $methods = ClassDescriptor::for(ClassDescriptor::class)->methods(); // Retrieves _only_ methods which are public and named "isFinal." $namedFinal = $methods->public()->name('isFinal'); // Retrieves all methods which are static or named "isFinal" (this leaves the original `$methods` variable alone). $staticOrNamedFinal = $methods ->anyOf( $methods ->static() ->name('isFinal') ); // Outputs "7" echo $methods->count(), PHP_EOL; // Outputs "1" echo $namedFinal->count(), PHP_EOL; // Outputs "2" echo $staticOrNamedFinal->count(), PHP_EOL; // Results in 7 method names foreach ($methods as $method) { echo $method->name(), PHP_EOL; } // Results in 1 method name foreach ($namedFinal as $method) { echo $method->name(), PHP_EOL; } // Results in 2 method names foreach ($staticOrNamedFinal as $method) { echo $method->name(), PHP_EOL; }