fob/di-aura-filter-module

0.1.0 2018-12-23 05:38 UTC

This package is auto-updated.

Last update: 2024-08-24 12:24:48 UTC


README

用于在 BEAR.Sunday 应用中实现 Aura.Filter(v2) 自定义规则的模块

  • 可以配置自定义规则到配置文件中
  • 在自定义过滤器类中可以使用DI(自动绑定功能)
  • 使用 FormalBears

设置

  1. 将自定义过滤器的每个服务类预先设置为绑定配置
  2. 安装模块
$this->install(new DiAuraFilterModule($this->registry));

配置

在配置文件中定义验证器和清理器的自定义规则。

※如果目前不需要,则无需设置。

示例:

di_aura_filter:
  # バリデーター構成
  validate_filters:
    # カスタムルール名にクラスを直接指定する場合
    app.name_in:
      class: 'Fob\DiAuraFilterModuleDemo\Bridge\AuraFilter\NamesValidator'
    # カスタムルール名にサービスコールバックを指定する場合
    app.kuma_spec:
      type: 'callback'
      callback: 'Fob\DiAuraFilterModuleDemo\Hello\KumaSpec'
  # サニタイザー構成
  sanitize_filters:
    app.name_mask:
      class: 'Fob\DiAuraFilterModuleDemo\Bridge\AuraFilter\NameMaskSanitizer'

用法

    /**
     * @var FilterFactory
     */
    private $sFilterFactory;

    /**
     * @Inject
     * @Named("sff=fob.aura_filter.service_filter_factory")
     */
    public function __construct(\Aura\Filter\FilterFactory $sff)
    {
        $this->sFilterFactory= $sff;
    }

请参考 DiAuraFilterModule 类的代码。

        $this->bind(FilterFactory::class)->annotatedWith('fob.aura_filter.service_filter_factory')->toProvider(ServiceFilterFactoryProvider::class);
        $this->bind(SubjectFilter::class)->annotatedWith('fob.aura_filter.service_subject_filter')->toProvider(ServiceSubjectFilterProvider::class);
        $this->bind(ValueFilter::class)->annotatedWith('fob.aura_filter.service_value_filter')->toProvider(ServiceValueFilterProvider::class);

演示应用程序链接