Я пытаюсь создать класс, который упрощает реорганизацию GridFieldConfig
каждый раз. Я использую следующие настройки почти каждый GridFieldConfig в моей CMS:Расширения SilverStripe для GridFieldConfig
$config = GridFieldConfig::create()->addComponents(
new GridFieldToolbarHeader(),
new GridFieldAddNewButton('toolbar-header-right'),
new GridFieldTitleHeader(),
... etc
)
Вместо того, чтобы повторять себе каждый раз, я предпочел бы создать класс, который возвращает экземпляр GridFieldConfig с выше components
. Поэтому я создал этот класс, но я не уверен, как заставить его работать должным образом и как подключиться к инфраструктуре/cms. plug.
<?php
class CustomGridConfig extends ??? {
function __construct() {
$config = GridFieldConfig::create()->addComponents(
new GridFieldToolbarHeader(),
new GridFieldAddNewButton('toolbar-header-right'),
new GridFieldTitleHeader()
... etc
);
return $config;
}
}
В конце концов, он будет реализован в GridField
следующим образом:
GridField::create('Foo', 'Bar', $this->Foo(), new CustomGridConfig());
Я не уверен, если это возможно, чтобы создать класс внутри класса, как это, и я не совсем уверен, как загрузить этот класс в CMS.
Является ли концепция этой установки жизнеспособной? Если да, то как? Это поможет мне понять, как правильно расширять рамки/cms.
Я бы предложил решение Dans или Jannes, возможно, больше Dans, поскольку оно содержит больше ссылок на документацию. – Barry