fob / di-aura-filter-module
0.1.0
2018-12-23 05:38 UTC
Requires
- php: >=7.0.8
- aura/filter: ^2.3
- fob/formalbears: ^0.1.0
Requires (Dev)
- phpunit/phpunit: ^7.4.4
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-08-24 12:24:48 UTC
README
用于在 BEAR.Sunday 应用中实现 Aura.Filter(v2) 自定义规则的模块
- 可以配置自定义规则到配置文件中
- 在自定义过滤器类中可以使用DI(自动绑定功能)
- 使用 FormalBears
设置
- 将自定义过滤器的每个服务类预先设置为绑定配置
- 安装模块
$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);