Symfony:组织多客户端应用程序的业务逻辑

时间:2016-05-13 09:57:03

标签: php symfony namespaces directory-structure

问题:
我不确定如何为Symfony设置多客户端应用程序,这样我们就不会违反Symfony的最佳实践并违反框架。
我想有一个主要的Core命名空间,它将包含所有基本模型类。在核心旁边,我想根据客户端区域设置设置将使用的客户端特定名称空间。例如LocalUS用于美国市场,LocalUK,用于英国市场等 Local *名称空间应该首先包含twig模板,作为后备使用核心公共共享视图(据我所知,这可以通过twig名称空间解决)。控制器和模型也是如此 - 这些可能通过扩展Core命名空间类来解决?这是否可以通过路由和为这些Local *控制器提供路径来解决? 我在github上查看是否有任何类似设置的项目,但我找不到任何东西。

一点背景:
我们有一个较旧的遗留PHP应用程序,它是使用普通PHP从头开始内部构建的。随着应用程序的不断发展,很难保持良好的代码质量和标准。向新开发人员讲授我们的应用程序逻辑也是非常耗时的,因为应用程序基本上没有遵循标准的设计模式,只是做它自己的事情。许多处理路由,控制器等的底层代码看起来像“魔术”,没有人真正敢触及。

正因为如此,我们希望将我们的应用程序迁移到Symfony3框架。我已经阅读了一些关于将遗留应用程序迁移到symfony的整个过程的文章,并且设法很好地使用了silex。然而,Silex有点过于轻量级,我发现资产服务提供商缺少很多功能(twig命名空间等),并且认为最好是我们可以转而使用完整的堆栈symfony框架。

1 个答案:

答案 0 :(得分:1)

调查Symfony bundles - 他们完全按照您的需要行事。你创建了一个" base"捆绑,而不是与其他捆绑。这就是FOSUserBundle的工作方式 - 它提供了您所需要的一切,而不是扩展它并覆盖它。