如何在不同服务中共用一套model层

目前我们有四套系统,两套laravel框架写的,两套hyperf框架写的。共用一个数据库,导致的一个问题就是同一个Model类要在四个服务中写一遍,很是麻烦和繁琐,请问有什么方案可以解决这个问题吗?谢谢。
hyperflaravel都用的是Eloquent ORM。所以兼容问题还是可以解决的。
目前服务运行采用的是k8s+docker的方案。

阅读 239
评论
    3 个回答

    承邀:
    使用grpc,swoole建立微服务,将model层放入微服务中。例如 @风中有php做的云 给到你的答案。我没有这样做过,不过可以给你一些思路。

    1.新建一个仅有Eloquent ORM的项目。
    2.将所有model放入这个项目。这是我们的model微服务,composer+复制粘贴即可完成
    3.在你原有的项目中需要实现model本身的方法,ArrayAccess, Arrayable, Jsonable, JsonSerializable, QueueableEntity, UrlRoutable
    4.最后,使用tcp或者http去通信你的微服务
    5.微服务返回model实体
    6.这样就无侵入的完成了model统一的需求

    这仅仅是我的思路,未经过实践,建议不要使用在生产环境中。

      相似问题
      推荐文章