m-a întrebat un prieten pe whatsapp, și n-am știu ce să-i răspund, așa că am zis să dau mai departe întrebarea, for the sake of conversation:
deci… pe aceeasi masina, cu acelasi PHP, daca evaluez metadate sau daca fac validare pe un request web, merge, le vede, le citeste, le interpreteaza si le aplica
pe aceeasi masina, intr-un test automat pe care-l rulez, acelasi fisier de clasa, cu acelasi PHP nu-mi mai vede atributele
namespace App\Request;
use Symfony\Component\Validator\Constraints as Assert;
class TwilioIncomingCallRequest extends TwilioBaseRequest
{
//////////////
// Mandatory params
//////////////
#[Assert\Type('string')]
#[Assert\NotBlank]
protected $CallSid;
public function getCallSid()
{
return $this->CallSid;
}
public function validate(): ConstraintViolationListInterface
{
return $this->validator->validate($this);
}
și când încearcă:
$request = new TwilioIncomingCallRequest($validator, $this->twilioService);
print_r($validator->getMetadataFor(TwilioIncomingCallRequest::class)); die();
rezultă în context CLI:
Symfony\Component\Validator\Mapping\ClassMetadata Object
(
[constraints] => Array
(
)
[constraintsByGroup] => Array
(
)
primul gând a fost că e setat aiurea în configul de symfony, dar nu pare:
framework:
validation:
email_validation_mode: html5
# Enables validator auto-mapping support.
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
#auto_mapping:
# App\Entity\: []
[email protected]:
framework:
validation:
not_compromised_password: false
any ideas?