如何将自定义站点配置添加到 silverstipe?

How to add custom site config to silverstipe?

我正在使用 silverstripe 构建一个模块,我想在数据库中为我的模块存储一些自定义配置。我浏览了文档,这就是我正在尝试的:

通过查看 silverstripe 文档:

<?php
namespace Poptin\Silverstripe;

use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\HTMLEditor\HTMLEditorField;
use SilverStripe\ORM\DataExtension;

class PoptinSiteConfig extends DataExtension 
{
    
    private static $db = [
        'FooterContent' => 'HTMLText'
    ];

    public function updateCMSFields(FieldList $fields) 
    {
        $fields->addFieldToTab("Root.Main", 
            new HTMLEditorField("FooterContent", "Footer Content")
        );
    }
}

在配置文件中:

Silverstripe\SiteConfig\SiteConfig:
    extensions:
        - \Poptin\SilverStripe\PoptinSiteConfig

但我不确定当我 运行 /dev/build/?flush 时这会做什么。它会为我的站点配置创建一个新的 table 吗?如果是,它是否只有一个名为 FooterContent 的字段?我不确定,在 运行 之前,我可以在文档中的何处阅读更多相关信息以了解这一点,以防它对我的数据库进行更改,我想确定一下。

DataExtensions 将列添加到现有的 table(仅供参考,子类创建新的 table,但这不适用于此处)。

使用 Silverstripe,您不必过多考虑数据库;它是通过 ORM 为您管理的。

推荐阅读:

最后一个 link 专门针对您的用例