Silverstripe v4 MVC 目录?

Silverstripe v4 MVC Directories?

我想知道为什么 SS4 主目录中没有 "Models / Views / Controllers" 个目录?似乎所有东西都应该放在里面 "mysite/code" .. 如何实现 MVC 风格?

MVC 更像是一种 software-architectural 模式,而不是组织文件的方式。 SilverStripe 框架对您应该如何组织代码做出了一些假设:

型号

对于 SilverStripe 4,每个模块的默认代码文件夹名为 srccode。在该文件夹中,您可以随意组织您认为合适的文件。理想情况下,您以 PSR-4 兼容的方式构建文件夹结构,以便您的 folder-names 与您的命名空间相匹配。

控制器

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

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

尽管如此,您可以通过在页面上实施 getControllerName 方法和 return 供控制器使用的 FQCN 来自由覆盖它。

观看次数

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

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