0

我想知道为什么 SS4 主目录中没有“模型/视图/控制器”目录?似乎一切都应该进入“mysite/code”..如何实现 MVC 风格?

4

1 回答 1

5

MVC 更像是一种软件架构模式,而不是您组织文件的方式。SilverStripe 框架对如何组织代码只有几个假设:

模型

在 SilverStripe 4 中,每个模块的默认代码文件夹命名为srccode. 在该文件夹中,您可以自由组织您认为合适的文件。理想情况下,您以符合PSR-4的方式构建文件夹结构,以便您的文件夹名称与您的命名空间匹配。

控制器

与模型类相同,您可以将控制器放在任何您想要的地方。

Page但是,对于类有一个默认假设。这些期望匹配的控制器与页面具有相同的命名空间。因此,如果您的页面名为:Company\Module\Pages\MyPage,框架将查找Company\Module\Pages\MyPageController.

不过,您可以通过在 Page 上实现该getControllerName方法并返回 FQCN 供控制器使用来自由覆盖它。

意见

也称为“模板”应该在一个templates文件夹中。每个模块(您的mysite文件夹也是一个模块)可以有一个templates文件夹。

除此之外,您还可以拥有主题。主题通常捆绑模板、CSS 和其他资产。在themes文件夹中可以有多个主题文件夹,每个文件夹可以有一个templates文件夹。

于 2018-02-24T09:20:39.623 回答