phpmob/settings-bundle

仅是一个 Symfony 设置包。

安装数: 104,590

依赖项: 3

建议者: 0

安全性: 0

星级: 5

关注者: 3

分支: 1

开放性问题: 1

类型:symfony-bundle

1.2.2 2018-06-09 18:11 UTC

This package is auto-updated.

Last update: 2024-09-18 22:51:17 UTC


README

Scrutinizer Code Quality Code Coverage Build Status Latest Stable Version Latest Unstable Version

仅是一个设置库。

安装

通过 composer 安装。

$ composer require phpmob/settings-bundle

使用缓存

$ composer require cache/filesystem-adapter

现在您可以使用内置的 \PhpMob\Settings\Manager\CachedManager

使用内置的 symfony 框架缓存作为替代,请参阅 - 框架/缓存

示例配置

# use with doctrine orm
doctrine:
    orm:
        mappings:
            PhpMobSettings:
                type: xml
                is_bundle: false
                prefix: PhpMob\Settings\Model
                dir: '%kernel.project_dir%/vendor/phpmob/settings-bundle/src/Resources/config/doctrine/model'


phpmob_settings:
    cache:
        service: cache.flysystem
    schemas:
        section1:
            label: Section1
            settings:
                key1: ~
        section2:
            label: Section2
            settings:
                key1:
                    value: key1Value
                key2:
                    label: SectionKey2
                    value: key2value
                    blueprint:
                        options:
                            label: SectionKey2Label
                        constraints:
                            NotBlank: ~
                gender:
                    label: Gender
                    value: f
                    blueprint:
                        type: Symfony\Component\Form\Extension\Core\Type\ChoiceType
                        options:
                            required: true
                            choices:
                                Man: m
                                Feman: f
                birthday:
                    type: date
                    label: Birthday
                    value: "1988-02-10"
                    blueprint:
                        type: Symfony\Component\Form\Extension\Core\Type\BirthdayType
                datetime:
                    type: datetime
                    label: DateTime
                    value: ~
                    blueprint:
                        type: Symfony\Component\Form\Extension\Core\Type\DateTimeType

所有者设置

为所有者(用户)感知的设置进行配置。控制器使用 PhpMobSettingsBundle:Update:userUpdate

phpmob_settings:
    schemas:
        section1:
            owner_aware: true
            label: Section1
            settings:
                key1: ~

更新路由

请参阅 src/Resources/config/routing.xml 中的示例路由,或使用以下方式自定义:

your_route_name:
    path: /settings/{section}
    defaults:
        _controller: PhpMobSettingsBundle:Update:globalUpdate
        _template: @yourtemplate # default @PhpMobSetting/default.html.twig
        _flash: ~ # flash message after update
        _redirect: ~ # redirect after update

自定义表单类型以在表单视图中显示 description 设置。

<?php

namespace YourBundle\Form\Type;

use PhpMob\SettingsBundle\Form\Type\AbstractBlueprintType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;

class YourSettingType extends AbstractBlueprintType
{
    /**
     * {@inheritdoc}
     */
    public function getParentType(): string
    {
        return CheckboxType::class;
    }
}

并在设置配置中。

phpmob_settings:
    schemas:
        section1:
            owner_aware: true
            label: Section1
            settings:
                key1:
                    type: boolean
                    label: 'Key 1'
                    value: true
                    blueprint:
                        type: YourBundle\Form\Type\YourSettingType

在 twig 中使用

获取设置

{{ settings_get('section.key') }}

{# owner aware setting #}
{{ settings_get('section.key', app.user) }}

设置设置

{{ settings_set('section.key', 'value') }}

{# owner aware setting #}
{{ settings_set('section.key', 'value', app.user) }}

示例管理界面

screen

贡献

想要帮助我们并构建开发者友好的 php 代码?请遵循我们的 编码标准 并测试您的代码 — 请参阅 测试规范

现在开始分叉和 PR 吧!

编码标准

向 PhpMob 贡献代码时,您必须遵循其编码标准。

PhpMob 遵循在 PSR-0PSR-1PSR-2 文档中定义的标准。

$ ./bin/ecs check src --fix

测试

$ ./bin/phpunit

许可

MIT