我想知道为什么SS4主目录中没有"模型/视图/控制器"目录?似乎一切都应该进入" MySite/Code"。如何完成MVC样式?
MVC更像是一种软件架构模式,而不是组织文件的方式。SilverStripe框架对您应该如何组织代码只有几个假设:
模型
使用SilverStripe 4,每个模块的默认代码文件夹命名为src
或code
。在该文件夹中,您可以自由地组织文件。理想情况下,您以PSR-4的方式构建文件夹结构,以便您的文件夹名称与您的名称空间匹配。
控制器
与模型类相同,您可以将控制器放在所需的任何位置。
Page
类有一个默认假设。这些期望匹配控制器具有与页面相同的名称空间。因此,如果您的页面命名:CompanyModulePagesMyPage
,则该框架将寻找CompanyModulePagesMyPageController
。
,您可以自由覆盖,通过在页面上实现getControllerName
方法并返回FQCN以供控制器使用。
视图
也称为"模板",应在templates
文件夹中。每个模块(您的mysite
文件夹也是一个模块(可以具有templates
文件夹。
除此之外,您还可以拥有主题。主题通常捆绑模板,CS和其他资产。在themes
文件夹中,您可以具有多个主题文件夹,每个文件夹都可以具有templates
文件夹。