Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel可重用函数_Php_Laravel_Repository Pattern - Fatal编程技术网

Php Laravel可重用函数

Php Laravel可重用函数,php,laravel,repository-pattern,Php,Laravel,Repository Pattern,我使用的是存储库设计模式,我有一个函数generateBarcode()这个函数只需执行一些逻辑并在数据库中插入数据即可 我在多个函数和多个存储库中调用此函数以生成新的条形码 问题是: 使此函数可重用的最佳方法是什么 助手 但我认为这不是一个好主意,因为它处理的是数据库 事件 触发事件并存储结果。 $barcode=事件(新的NewBarcodeRequired()) 这就是我现在正在做的事情,数据以数组的形式返回 我也不认为这是一个好主意,因为我读到事件不应该返回数据 存储库 为这个函数创建一

我使用的是存储库设计模式,我有一个函数
generateBarcode()
这个函数只需执行一些逻辑并在数据库中插入数据即可

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

问题是:

使此函数可重用的最佳方法是什么

  • 助手
  • 但我认为这不是一个好主意,因为它处理的是数据库

  • 事件
  • 触发事件并存储结果。
    $barcode=事件(新的NewBarcodeRequired())

    这就是我现在正在做的事情,数据以数组的形式返回

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

  • 存储库

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

    对于这种情况,Traits可能是一个很好的选择。这将使您能够灵活地在任何类中使用,而无需类扩展

    Traits是单一继承语言(如PHP)中代码重用的一种机制。Trait旨在通过使开发人员能够在不同类层次结构中的几个独立类中自由地重用方法集来减少单个继承的一些限制。特征和类组合的语义是以一种降低复杂性的方式定义的,并且避免了与多重继承和混合相关的典型问题

    一种特质类似于一个类,但只用于分组 以细粒度和一致的方式提供功能。这是不可能的 单独实例化一个特征。这是对传统文化的补充 继承并支持行为的横向组合;就是, 不需要继承的类成员的应用程序


    trait呢?@AnarBayramov所以我必须为这个函数创建一个类?为什么不能为单个函数创建一个类?如果每个存储库中的代码相似,trait似乎是一个不错的选择。这样,您可以一次性定义函数,并在需要生成条形码的所有存储库中使用它。trait中是否只有一个函数并不重要。@newusername2在这种情况下为什么不使用event?我可以简单地创建一个新产品并激发和事件来生成代码,然后将该事件结果存储在一个变量中,并将其分配给创建的产品