hhpack/package

为供应商提供的包工具库

维护者

详细信息

github.com/hhpack/package

源代码

问题

安装: 172

依赖: 2

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

开放问题: 2

语言:Shell

1.5.0 2019-08-20 03:09 UTC

README

为供应商提供的包工具库。
轻松快速,您可以找到类或接口。

Latest Stable Version CircleCI Dependency Status License

基本用法

从包中查找源文件。

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);
}

流管道

您可以构建一个管道。
当实现接口 MiddlewareStream 时,您可以实现这一点。

请参阅 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