如何与几个项目共享Symfony2模型

Die*_*ter 14 php bundle coding-style model symfony

我们正在创建一个监控某些资产的SaaS.这意味着它接收数据,保存数据并将其显示在Web界面中.

为此,我们使用/创建的一些组件正在转移到Symfony2:

  • 一个前端Web应用程序,用户可以在其中查看其数据
  • 后端管理Web应用程序,我们在其中创建新的监视器,用户等.
  • 一个API
  • 一个应用程序,它从队列中检索接收的数据并将其放入我们的数据库中(这是一个单独的脚本,但我正在考虑将其重新编写为由cron调用的Symfony命令)

所有这四个应用程序共享相同的模型:我们的主数据库包含所有用户,监视器和数据.

我的问题是:我应该如何在Symfony2中构建这些项目

  1. 我是否创建了一个单独的包来保存我的数据库的实体,并让这四个项目包含这些实体并使用它们?
  2. 我可以在我的Symfony app文件夹中创建一个'model'目录,我的/ src目录中的所有bundle都使用它吗?
  3. 其他一些更干净的方法吗?

选项1看起来有点奇怪,因为根据我的理解,捆绑需要路由,视图,控制器等.将它用于实体只会有点奇怪.

选项2似乎没问题,因为对于/ src文件夹中的所有内容,/ app文件夹无论如何都被视为"公共"(因为,例如,参数也驻留在那里).但是,那里没有'model'文件夹,我不确定应该有吗?

据我所知,Symfony 2已经很少有"最佳实践",因为它是全新的.但是在你看来,我想看看是否有更优先的做法和其他做法.

任何反馈都更受欢迎.提前致谢,

迪特

Nem*_*vić 7

我目前正在做的是第一个选项:为您的实体创建一个单独的包.这就是我存储灯具,实体,表格和实体相关测试的地方.

一束确实不是需要有路由,控制器,视图等.我确实遇到过一个蓝图捆绑,并且它是所有船蓝图CSS资源,这样他们可以在项目中轻松地重用.

至于将模型添加到app目录......我不喜欢这样.我将app目录视为所有配置应该是的地方.即使您可以覆盖视图app/Resources,只要我想覆盖某些内容,我就会创建一个新的包.