Symfony2 - bundle是一个功能...但是什么是功能?



我第一次尝试使用Symfony2框架构建应用程序。然而,有很多东西需要学习,我的大脑被所有的视频/博客文章/提示/文档所饱和,我对所有这些信息感到不知所措。我想以正确的方式开始我的项目,并确保我的架构会很好。我有点理解"捆绑"的概念。它意味着与功能相关的所有信息。但随后我问自己...什么是功能?我们如何定义特征?

我将从我的项目中举一个微不足道的例子。我有一个用户可以注册/登录他们的帐户。登录本身是一项功能吗?还是整个管理界面都是功能?

我还有第二个例子。在我的应用程序中,我的用户可以将文件上载到服务器。上传者是否应该在捆绑包中(文件验证、复制文件、调整图像大小)?我知道我的上传器将被多次使用(上传徽标、产品图像等),我显然希望在完成后重复使用我的代码。

捆绑包是一组实现一件事的类,或者捆绑包是库和框架之间的粘合剂。例如,在创建博客时,主捆绑包将是BlogBundle。你也是什么评论系统,所以它还有一个评论包。对于菜单,您可以使用 KnpMenu 库,因此使用 KnpMenuBundle。要使页面动态化,您还可以使用 SonataBlockBundle 和 SonataAdminBundle。

这些都是功能。

回答您的案例:所有管理内容都是一个捆绑包。但是这个管理包不包括用户系统,这是用户包的任务(例如FosUserBundle)。

在第二种情况下:您有一个 MediaBundle 来处理特定文件的上传(您在配置中配置)。您还有一个用于用户系统的UserBundle和某种AdminBundle来控制项目。

最新更新