vkr / settings-bundle
一个简化从配置文件和Doctrine实体中检索设置的Symfony2/3包
Requires
- php: >=5.6
- doctrine/doctrine-bundle: ~1.4
- doctrine/orm: >=2.2.3
- symfony/symfony: ~2.8|~3.0
Requires (Dev)
- phpunit/phpunit: >=5.4
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()
将尝试以键值数组的形式检索所有设置实体对象。如果未设置实体,将返回空数组。此方法将忽略所有基于参数的设置。