Laravel可重用功能

时间:2018-11-20 01:44:26

标签: php laravel repository-pattern

我正在使用存储库设计模式,并且我有一个功能generateBarcode(),该功能只是做一些逻辑并在数据库中插入数据。

我在一个函数和一个以上存储库中调用此函数以生成新的条形码。

  

问题是:

使此功能可重用的最佳方法是什么?

  1. 助手

但是我认为这不是一个好主意,因为它正在处理数据库。

  1. 事件

触发事件并存储结果。 $barcode = event(new NewBarcodeRequired())

我现在正在做的事情和数据以数组形式返回

我也不认为这是一个好主意,因为我已阅读到事件不应该返回数据。

  1. 存储库

为此功能创建一个新的存储库,但是我认为这是一个非常糟糕的主意,因为我不会为我拥有的每个可重用功能创建一个类。

1 个答案:

答案 0 :(得分:1)

在这种情况下,

特质可能是一个不错的选择。这将使您可以灵活地在任何类中使用,而无需类扩展。

  

特质是一种在PHP等单一继承语言中重用代码的机制。特性旨在通过使开发人员能够在生活在不同类层次结构中的几个独立类中自由重用方法集,从而减少单一继承的某些限制。特性和类的组合的语义被定义为可以降低复杂性,并且避免了与多重继承和Mixins相关的典型问题。

     

一项特质类似于一个班级,但仅用于分组   细致且一致的功能。这不可能   自己实例化特质。它是传统的补充   继承并实现行为的横向组合;那是,   类成员的应用而无需继承。

http://php.net/manual/en/language.oop5.traits.php