在Laravel处理工作时的抽象派

时间:2016-02-05 12:30:21

标签: php oop laravel message-queue

我试图重复使用Job代码以相同的方法处理两个不同的任务(MyClass1和MyClass2)。我已经编写了一个抽象类来将它传递给Job处理程序,但是我得到的消息“不是可实例化的”#。

这就是我想要做的事情

    abstract class MyAbstractClass
    {
            abstract public function doSomething();
    }

    class MyClass1 extends MyAbstractClass
    {
            public function doSomething(){
                    // do some staff
            }
    }

    class MyClass2 extends MyAbstractClass
    {
            public function doSomething(){
                    // do some staff
            }
    }

    class MyJob extends Job implements ShouldQueue
    {
            use InteractsWithQueue, SerializesModels;

            public function __construct()
            {

            }

            public function handle(MyAbstractClass $myObj)
            {
                    $myObj->doSomething();
                    // it executes the method doSomething of MyClass1 or  MyClass2 depending on the enqueued Job
            }
    }

任何解决方案?如果没有,我会做两个工作,每个班级一个...你觉得怎么样?

谢谢

0 个答案:

没有答案