symfonyは自動的にクラスの階層を調べ、関係するクラスごとに定義されたバリデータを読み込みます。 AbstractClass
ため
<?php
abstract class AbstractClass {
protected $inheritedProperty;
}
class MyConcreteClass extends AbstractClass {
protected $myProperty;
}
バリMyConcreteClass
のために、唯一の(すなわち$myProperty
。)、それは独自のプロパティだ説明します
<?xml version="1.0" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="MyConcreteClass">
<property name="myProperty">
<constraint name="NotBlank" />
</property>
</property>
</class>
</constraint-mapping>
バリ、のみ説明します:
したがって、次のPHPクラスを取りますそれ自身のプロパティです(つまり、$inheritedProperty
)。
<?xml version="1.0" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
<class name="AbstractClass">
<property name="inheritedProperty">
<constraint name="NotBlank" />
</property>
</class>
</constraint-mapping>
012必要な追加の構成はありません -
MyConcreteClass
オブジェクトを検証するとき
、symfonyは自動的MyConcreteClass
がAbstractClass
を拡張し、それがMyConcreteClass
バリデータに加えて、AbstractClass
バリデータをロードする必要があることを識別することになります。