Symfony 2中的模块化应用

时间:2013-06-19 11:11:28

标签: php symfony bundle

我正在寻找symfony 2中模块化应用程序的最佳实践。到目前为止,我的应用程序被分为2个包(前束和后束)。但现在,我想将我的应用程序分成更多模块。例如,一个用于管理用户的包,用于产品的下一个包(包含的类别),用于页面管理的下一个包等等...

问题在于每个包的实体。存在某种方式,如何将实体分配到其捆绑?我的意思是用户实体进入用户包,产品和类别实体进入产品包等等。

修改

我使用doctrine控制台生成实体。但是我没有找到任何参数来从我的数据库中生成很少的实体。这样对吗?或者我必须手动编写实体?

我需要这样的思考才能重新使用捆绑包。

感谢`s任何提示;)

3 个答案:

答案 0 :(得分:0)

我认为你对过于复杂的事情感到厌烦。管理实体这样简单的事情就不应该只有一个完整的捆绑。拥有一个包含40多个实体的捆绑包是完全没问题的。

你可以使用另一个包就像这个例子:

表单包将用于看上去花哨的表单,自动填充字段,图片上传器,图片恢复器等。您可以执行以下操作:

$builder->add("Users", "my_fancy_autocomplete_collection", [
   "type"=>new UserType(),
   "autocomplete_route_name"=>"suggest_users"  // controller route          
]) ;

为了显示,它可能是:http://welldonethings.com/tags/manager(我找到的第一个)

这种奇特的类型必须有一些DataTransformer,它可以将显示数据转换为从数据库中获取的真实用户。一次学习所有这些东西有点棘手,但是一旦你这样做,你就可以在其他应用程序中使用同一个包。

答案 1 :(得分:0)

当我启动symfony 2项目时,这是我关于bundle的逻辑:

  • 为我的应用创建一个捆绑包(当然是使用CLI)
  • 创建其他捆绑如果我可以在其他项目中重复使用

因此,正如@Zeljko所说,请三思而后行,确定项目的范围,以便定义捆绑包。

之后很简单,使用正确的命名空间在bundle中创建实体(例如:Company \ Nomdubundle \ Entity)。

答案 2 :(得分:0)

我在这里找到了灵魂(有一个参数--filter) Generating a single Entity from existing database using symfony2 and doctrine

感谢提示。