ongr / settings-bundle
为 ONGR 平台项目提供设置用户界面和 API
Requires
- php: >=5.5
- doctrine/cache: ~1.4
- friendsofsymfony/jsrouting-bundle: ~1.5
- ongr/cookies-bundle: ~1.0
- ongr/elasticsearch-bundle: ~1.2.4
- ongr/filter-manager-bundle: ~1.0
- symfony/symfony: ~2.7|~3.0
Requires (Dev)
- phpunit/phpunit: ~4.4
- satooshi/php-coveralls: ~1.0
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2024-08-25 07:00:02 UTC
README
Settings Bundle 提供设置 API 和简单的用户界面,用于设置管理。
包含内容
- 设置功能切换(用于开/关功能)。
- 每个用户都有个人设置,只有他可以更改(基于 cookie)。
- 每个设置的 API。
- 简单且极简的网页界面。
- 多类型设置:yaml、布尔值、文本。
- 全局设置的缓存层。
此包独立于 ONGR 平台,可以在您的项目中单独使用,并且依赖关系很少。
如果您需要任何帮助,请通过stack overflow提问,这是首选和推荐的方式。
文档
该包的在线文档可在 http://docs.ongr.io 找到。文档源代码存储在 repo 的 Resources/doc/
中,所以如果您发现错别字或问题,请提交 PR 修复它!
关于贡献文档,您可以在贡献主题中找到。
安装
步骤 1:安装 Settings 包
FilterManager 包使用 Composer 安装。
$ composer require ongr/settings-bundle "~1.0"
请注意,设置包需要 Elasticsearch 包,如何安装和配置的指南可以在这里找到。
步骤 2:启用 ONGR 包
在您的 AppKernel 中注册 Settings 包及其所有必需依赖项。
// app/AppKernel.php <?php public function registerBundles() { $bundles = array( // ... new FOS\JsRoutingBundle\FOSJsRoutingBundle(), new JMS\SerializerBundle\JMSSerializerBundle(), new ONGR\CookiesBundle\ONGRCookiesBundle(), new ONGR\ElasticsearchBundle\ONGRElasticsearchBundle(), new ONGR\FilterManagerBundle\ONGRFilterManagerBundle(), new ONGR\SettingsBundle\ONGRSettingsBundle(), // ... ); // ... }
步骤 3:添加配置
添加 Elasticsearch 包的最小配置。使用这些配置,所有设置都将保存到名为 settings
的独立 Elasticsearch 索引中。
# app/config/config.yml ongr_elasticsearch: managers: settings: index: index_name: settings settings: number_of_shards: 2 number_of_replicas: 0 mappings: - ONGRSettingsBundle
如果您已经使用 ONGR Elasticsearch 包,请将当前配置与该配置合并:将
settings
连接添加到当前连接列表中,并将settings
管理器添加到当前管理者列表中。有关 ElasticsearchBundle 配置的更多信息,请阅读此处。
另外,添加设置 API 和网页界面的路由配置。
#app/config/routing.yml # FOS JS bundle route map, if you have it already skip this one. fos_js_routing: resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml" # ONGR settings management route map. You might want to secure it under some firewall. ongr_settings_private_routing: resource: "@ONGRSettingsBundle/Resources/config/routing/management.yml" prefix: /settings # Public routes for ONGR settings. Do not add them to the firewall unless you know what you are doing. ongr_settings_public_routing: resource: "@ONGRSettingsBundle/Resources/config/routing/public.yml" prefix: /s
在 /settings
之下将包含设置管理的所有 URL 部分。例如,一般设置面板将位于 /settings/general_settings_list
,而个人设置面板位于 /settings/settings
。您可以根据需要更改映射前缀。
在公共路由映射中的 /s/
之下将有一个通过链接启用设置配置文件的路由。这是一个启用或禁用用户配置文件的登录页面。是否要保护此前缀取决于您。您可以在相同的前缀下映射这两个资源,这两个资源中永远不会出现相同的路由。
步骤 4:创建索引并安装资产
通过在终端运行以下命令创建 Elasticsearch 索引:
bin/console ongr:es:index:create -m settings
有关所有命令的更多信息,请参阅Elasticsearch 包命令章节。
我们强烈建议为设置(如示例中所示)创建单独的索引,这样您的业务数据就不会与设置混淆。
没有资产,网页界面将无法工作。通过在终端使用以下命令安装它们:
bin/console assets:install --symlink
步骤 5:检查工作情况
是的,您可以检查它的工作原理,但它目前尚未准备好投入生产。在此时刻,所有设置管理都是公开的。请别忘了设置防火墙并保护 your_settings_prefix
端点。
访问 /{your_settings_prefix}/settings
。您应该能看到常规设置的管理员面板。
用法
全局设置。
访问 /{your_management_settings_prefix}/settings
并创建您希望在应用程序中使用的设置。创建设置时会有配置文件的选择。在您创建设置并希望在网站上使用它时,您必须激活一个配置文件(参见配置文件部分)。
有一个Twig扩展可以在模板中使用设置。
{{ ongr_setting('setting_name', 'default value') }}
例如,如果您想有功能切换,您可以创建布尔设置,并在 if
语句中使用扩展
{% if ongr_setting('setting_name') %}
show something cool
{% endif %}
配置文件
配置文件类似于分组设置,您可以一次性启用或禁用所有设置。设置可以分配给多个配置文件。您可以在 /your_management_settings_prefix/profiles
找到配置文件管理页面。
要创建配置文件,只需创建带有新配置文件的第一个设置,它就会出现在配置文件页面中。
许可协议
此捆绑包受MIT许可协议的保护。请参阅捆绑包中的完整许可协议 LICENSE 文件。