Symfony2:网站、移动网站和API的代码结构?
我想建立一个中型网站,其中还包括一个移动网站和一个API。 由于我已经有一些与Symfony的经验,我想建立在它之上的项目 然而,我不知道如何组织我的项目。也许有一些指导方针如何处理这个问题 将每个组件作为一个单独的捆绑包构建一个组件包是一个好主意吗?例如CoreBundle、APIBundle、WebsiteBundle和MobileWebsiteBundle,而CoreBundle将包含所有模型和验证以及其他捆绑控制器和视图Symfony2:网站、移动网站和API的代码结构?,symfony,project-organization,code-structure,Symfony,Project Organization,Code Structure,我想建立一个中型网站,其中还包括一个移动网站和一个API。 由于我已经有一些与Symfony的经验,我想建立在它之上的项目 然而,我不知道如何组织我的项目。也许有一些指导方针如何处理这个问题 将每个组件作为一个单独的捆绑包构建一个组件包是一个好主意吗?例如CoreBundle、APIBundle、WebsiteBundle和MobileWebsiteBundle,而CoreBundle将包含所有模型和验证以及其他捆绑控制器和视图 或者有完全不同的方法吗?您不需要将所有代码放入捆绑包中。事实上,您
或者有完全不同的方法吗?您不需要将所有代码放入捆绑包中。事实上,您在那里放置的代码越多,就越需要将其耦合到框架 考虑将一些与Symfony无关的代码提取到单独的名称空间中,并将捆绑包视为PHP代码和Symfony框架之间的粘合剂 例如:
- 顶点
- 捆
- 芹菜
- 网站包
- 实体
- 工具
- 小枝
- 捆
将代码放在捆绑包中的优点是许多工具/捆绑包,如Assetic,Doctrine使用预先配置的捆绑包目录(
/Entity
,/Resources/views
)来查找/加载资源。总是可以让这些工具在包空间之外加载资源,但这需要额外的配置。为实体配置ORM映射很简单。此外,我并不建议将所有东西都放在捆绑包之外。提取视图没有多大意义(但如果可用的话,细枝扩展也有意义)。您如何看待为API创建另一个名为ApiKernel的内核以及现有的捆绑包?例如,我将所有bundle存储在src/VendorName/中,并且它与PSR-0相关,但我希望将它们移动到名为bundles
的目录中,如上面所示。我认为这是一种有趣的方式。将Bundle移动到Bundle名称空间应该不难(您必须修复名称空间和Bundle名称)。只有在需要分离时才创建一个apickernel。这取决于一个项目,对你来说听起来不错。您还需要单独的前端控制器和配置。
doctrine:
orm:
mappings:
Bossa:
type: annotation
is_bundle: false
dir: %kernel.root_dir%/../src/Acme/Entity
prefix: Acme\Entity\
alias: Acme