E-Mail Validierung überschreiben

Hallo Zusammen,

wie sonic richtig bemerkt hat, haben wir in 5.1.4 die implementierung des Email Validators auf einen einfachen Regex umgestellt.

 

Aber auch schon in den vorherigen Versionen kann der gesamte EmailValidator ausgetauscht werden. 

Dazu könnt ihr ein Plugin anlegen welches den container service  validator.email austauscht. Das nötige event dafür ist  Enlight_Bootstrap_InitResource_validator.email:

class Shopware_Plugins_Frontend_SwagMyMailValidator_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
    public function install()
    {
        $this->subscribeEvent(
            'Enlight_Bootstrap_InitResource_validator.email',
            'onValidatorInit'
        );

        return true;
    }

    public function onValidatorInit(Enlight_Event_EventArgs $args)
    {
        return new MyEmailValidator();        
    }
}

Der EmailValidator der dort erstellt wird muss das  EmailValidatorInterface implementieren, also eine isValid() methode haben:

class MyEmailValidator implements \Shopware\Components\Validator\EmailValidatorInterface
{
    public function isValid($emailAddress)
    {
        // your logic here
        return !strpos($emailAddress, '@') !== false;
    }
}

Im Shopware Core benutzen wir ab 5.1.4 einen regex um die email Adressen zu überpüfen. Weiterhin liefern wir aber auch **\Egulias\EmailValidator\EmailValidator **für eigene   EmailValidatorInterface-Implementierungen mit.

Dort könnt ihr dann auch erweiterte Optionen wie zb. den DNS check aktivieren.

Mehr dazu findet ihr in der Developer Dokumentation unter: Service extensions

Viele Grüße,
Benjamin Cremer 

 

 

 

5 „Gefällt mir“