aviator / runnable

此包已被废弃,不再维护。未建议替代包。

静态构造器和具有接口的处理特性。

0.1.0 2017-12-19 15:46 UTC

This package is auto-updated.

Last update: 2024-04-21 19:40:59 UTC


README

Build Status Latest Stable Version.License

概述

此包提供了一个静态构造器和处理接口,以及实现该接口的特质。

安装

通过Composer

composer require aviator/runnable

测试

通过Composer

composer test

用法

使用特质

class Something
{
    use RunnableTrait;
}

然后,可以使用Class::run()()实例化和处理类。静态run方法返回一个闭包,该闭包接受方法所需的任何参数(默认为get()

$closure = Something::run($arg1);
$result = $closure($arg2); 

// Or just:

$result = Something::run($arg1)($arg2);

特质还引入了Aviator\Makeable,因此您可以直接获得静态构造器make()

接口是可选的,尽管在组合接口中指定静态构造器存在可能很有用

interface SomeInterface extends Runnable, SomeOtherInterface
{
    /* etc */
}

默认情况下,特质将调用get(),但可以被覆盖

class Something
{
    use RunnableTrait;
    
    protected static $method = 'handle';
    
    public function handle ($arg)
    {
        /* etc */
    }
}

$result = Something::run()('arg');

// Calls the handle() method.

延迟静态绑定的魔力意味着您可以在扩展抽象类的类、扩展类的类等上覆盖默认方法

其他

许可证

此包使用MIT许可证(MIT)授权。