如何在多个命令中覆盖一个函数?

时间:2018-04-19 12:58:39

标签: laravel laravel-5.6

我们正在将旧应用程序迁移到Laravel。旧应用程序管理不同的项目,并为主应用程序提供“管理”数据库,并为每个项目创建一个新数据库。我们宁愿保留这种结构,但它会为迁移等事情带来一些问题。

最初我们创建了自己的基本命令来实现handle()函数,这样任何扩展此命令的命令都将遍历所有项目数据库。这意味着我们已经更改了结构,因此迁移被分成两个目录,因为我们对不同类型的数据库进行了“admin”和“project”迁移。如果它不能与开箱即用的实现一起使用,我们还会复制已经存在的每个Laravel命令。

然而,这会产生大量重复代码,因为我们创建了自己的migrate命令实现,它只是将调用传递给Laravels自己的migrate命令。我现在发现自己必须在我们的新命令中实现--force选项。

所以我想做的是以某种方式覆盖所有Laravel控制台命令中的handle()函数。 有更好的方法来实现这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以为工匠类创建自己的基类,并从中扩展命令。