在我迄今为止完成的学校 Web 项目中,我使用 3 层方法构建我的应用程序。 数据层、应用程序和表示层。 我已经将这种架构与 python 和 java 一起使用,我也想将它与 php 一起使用。 我对层与层之间的通信非常严格,因为这些是作业的要求,我可以说我觉得它非常好,因为当我尝试一次从 mySQL 切换到 Mongo db 时,它非常容易。我只需更改数据访问对象函数内的代码。
正如我之前所说,我现在想用 php 编写一个更大的应用程序,我下载并安装了 Symfony2 框架,这是一个 MVC 框架。我的意图是先使用 MySQL 测试应用程序,然后切换到 Redis 进行测试。
所以我的问题是: 我可以使用框架的功能和所有“好东西”来编写 3 层架构应用程序吗?我如何分离这些层?
最佳答案
Symfony2 本身并不是一个 MVC 框架,它只是一堆松散耦合的组件,可以很好地协同工作。有一个 blog post来自首席开发人员的介绍。
您可以选择 bundle 的粒度,例如,您可以创建一个包含纯域对象、业务逻辑和存储库接口(interface)的 bundle ,无论您想要什么。您可以选择提供您选择的 ORM 的映射配置。现在您可以为数据访问策略创建包,例如使用 doctrine 的包,其他使用 redis 的包,实现您的存储库接口(interface)。
所以你可以对细粒度的 bundles 结构着迷,但对于简单的应用程序,你可以将所有这些放在 /src
下,或者只创建一个包含在那里实现的所有数据访问策略的 bundle,并在您的应用程序中使用捆绑配置选择一个。
研究其他 bundle 的方法也有助于熟悉最佳实践,FOSCommentBundle或 FOSUserBundle可能是一个很好的起点。
关于php - 使用 Symfony PHP 实现三层架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9484458/