在我迄今为止所做的学校网络项目中,我使用3层方法构建我的应用程序.
数据层,应用程序和表示层.
我已经使用python和java的这个架构,我也想用它与PHP.
我对层之间的通信非常严格,因为这些是分配的要求,我可以说我发现它非常好,因为当我尝试从MysqL切换到Mongo db时,它非常容易.我只需要更改数据访问对象功能中的代码.
正如我之前所说,我想在PHP中编写一个更大的应用程序,我下载并安装了Symfony2 Framework,这是一个MVC框架.我的目的是使用MysqL初始化测试应用程序,然后使用Redis进行切换和测试.
所以我的问题是:
我是否可以使用框架的功能和所有“好东西”来编写3层架构应用程序,如何分层?
解决方法:
Symfony2本身不是一个MVC框架,它只是一堆松散耦合的组件,可以很好地协同工作.主要开发者有一个关于此的blog post.
您可以选择捆绑包的精细程度,例如,您可以创建包含纯域对象,业务逻辑和存储库接口的捆绑包,DAO,无论您想要什么.您可以选择提供所选ORM的映射配置.现在,您可以为数据访问策略创建捆绑包,例如使用doctrine的捆绑包,使用redis创建捆绑包,实现存储库接口.
因此,您可以对细粒度的bundle结构感到疯狂,但对于简单的应用程序,您可以将所有这些放在/ src下,或者只是创建一个包含在那里实现的所有数据访问策略的包,并在您的应用程序中选择一个包.组态.
研究其他捆绑的方法也有助于熟悉最佳实践,FOSCommentBundle或FOSUserBundle可能是一个很好的起点.