ongr/settings-bundle

为 ONGR 平台项目提供设置用户界面和 API

安装次数: 13,926

依赖关系: 0

建议者: 0

安全: 0

星星: 7

关注者: 18

分支: 9

开放问题: 5

类型:symfony-bundle

v1.0.0 2016-10-04 08:43 UTC

This package is auto-updated.

Last update: 2024-08-25 07:00:02 UTC


README

Settings Bundle 提供设置 API 和简单的用户界面,用于设置管理。

包含内容

  • 设置功能切换(用于开/关功能)。
  • 每个用户都有个人设置,只有他可以更改(基于 cookie)。
  • 每个设置的 API。
  • 简单且极简的网页界面。
  • 多类型设置:yaml、布尔值、文本。
  • 全局设置的缓存层。

此包独立于 ONGR 平台,可以在您的项目中单独使用,并且依赖关系很少。

如果您需要任何帮助,请通过stack overflow提问,这是首选和推荐的方式。

Build Status Coverage Status Latest Stable Version Scrutinizer Code Quality

文档

该包的在线文档可在 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 文件。