vkr/settings-bundle

一个简化从配置文件和Doctrine实体中检索设置的Symfony2/3包

安装: 173

依赖者: 5

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:symfony-bundle

1.1.2 2017-04-15 12:18 UTC

This package is auto-updated.

Last update: 2024-09-20 23:03:38 UTC


README

这是一个简单的包,旨在简化从不同地方获取Symfony项目设置的流程。目前它支持两种设置来源:配置文件或由Doctrine控制的实体。请注意,此包需要Doctrine才能运行。

安装

在使用此包之前,您需要做的唯一一件事是定义实体。如果您总是使用基于参数的设置,您可以完全跳过此步骤。

要创建此包支持的实体,您需要创建一个实现VKR\SettingsBundle\Interfaces\SettingsEntityInterface的Doctrine实体类,并定义其两个方法,getName()getValue(),这两个都必须返回字符串。

然后,您需要在您的配置文件中创建一个名为 settings_entity 的参数,它必须包含您实体的完全限定名称,例如:

settings_entity: 'AppBundle\Entity\Settings'

请注意,以下条目将不会工作:

settings_entity: 'AppBundle:Settings'

到此为止。

使用方法

首先,创建一个 SettingsRetriever 服务对象。然后,使用它的 get() 方法,并传入您的设置名称作为参数。脚本将首先尝试从您的配置文件中获取具有该键的参数。如果没有找到,它将尝试找到具有与 get() 方法参数相同的名称参数的数据库记录,然后使用 getValue() 方法。否则,它将抛出 VKR\SettingsBundle\Exception\SettingNotFoundException

示例(应从控制器中运行)

$settingsRetriever = $this->get('vkr_settings.settings_retriever');
try {
    $mySetting = $settingsRetriever->get('my_setting');
} catch (VKR\SettingsBundle\Exception\SettingNotFoundException $e) {
    // do something
}

API

void SettingsRetriever::__construct(Container $container, EntityManager $em)

容器和实体管理器应该被注入,如果它们是手动初始化的

string SettingsRetriever::get(string $settingName, bool $suppressErrors=false)

如果第二个参数设置为true,则方法会在找不到设置时返回false,而不是抛出异常。

string[] SettingsRetriever::getAllFromDB()

将尝试以键值数组的形式检索所有设置实体对象。如果未设置实体,将返回空数组。此方法将忽略所有基于参数的设置。