hhpack / package
为供应商提供的包工具库
1.5.0
2019-08-20 03:09 UTC
Requires
- hhvm: >=3.21.0
- facebook/definition-finder: ^2.12
- hhvm/hhvm-autoload: ^2.0
- hhvm/hsl: ^4.7
Requires (Dev)
- facebook/fbexpect: ^2.6
- hhvm/hacktest: ^1.6
- dev-master
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.8
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.12.0
- 0.11.1
- 0.11.0
- 0.10.0
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.0
- 0.6.0
- 0.5.0
- 0.4.1
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-feature/hhvm
- dev-feature/hhvm4.1
- dev-feature/hackunit
- dev-feature/format
- dev-feature/fix_build_settings
This package is auto-updated.
Last update: 2024-09-20 13:49:11 UTC
README
为供应商提供的包工具库。
轻松快速,您可以找到类或接口。
基本用法
从包中查找源文件。
use HHPack\Package\VendorPackage; $sources = VendorPackage::fromItems([ Pair { 'package\\examples\\classes\\', realpath(__DIR__ . '/src') } ])->sources(); foreach ($sources as $source) { var_dump($source->name()); // /path/to/example.hh var_dump($source->directory()); // /path/to }
元素选择
您可以在以下函数中选择元素。
- HHPack\Package\implementsInterface
- HHPack\Package\subclassOf
- HHPack\Package\classes
- HHPack\Package\abstractClasses
- HHPack\Package\traits
- HHPack\Package\interfaces
- HHPack\Package\instantiable
- HHPack\Package\startsWith
- HHPack\Package\endsWith
以下我们寻找接口和特质。
use HHPack\Package as package; use HHPack\Package\VendorPackage; $interfaces = VendorPackage::fromItems([ Pair { 'Package\\Examples\\Classes\\', realpath(__DIR__ . '/src') } ])->classes(package\interfaces()); foreach ($interfaces as $interface) { var_dump($interface->name()); // interface } $traits = VendorPackage::fromItems([ Pair { 'Package\\Examples\\Classes\\', realpath(__DIR__ . '/src') } ])->classes(package\traits()); foreach ($traits as $trait) { var_dump($trait->getName()); // trait }
类实例化
从源文件获取实例
use HHPack\Package\VendorPackage; $instances = VendorPackage::fromItems([ Pair { 'Package\\Examples\\Classes\\', realpath(__DIR__ . '/src') } ])->classes()->map(($class) ==> $class->instantiate()); foreach ($instances as $instance) { var_dump($instance); }
流管道
您可以构建一个管道。
当实现接口 Middleware 和 Stream 时,您可以实现这一点。
请参阅 example/pipeline.hh 获取详细信息。
use HHPack\Package\VendorPackage; use HHPack\Package\Examples\Classes\FileStatTransformer; use HHPack\Package\Examples\Classes\FileStatOutput; $package = VendorPackage::fromItems([ Pair { 'Package\\Examples\\Classes\\', realpath(__DIR__ . '/src') } ]); $package->sources() ->pipeTo(new FileStatTransformer()) ->pipeTo(new FileStatOutput());
运行测试
composer install
composer test