Proyectos de Subversion LeadersLinked - Backend

Rev

Autoría | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Validator;

use Laminas\Validator\AbstractValidator;
use Laminas\Validator\NotEmpty;

class NotEmptyConditional extends NotEmpty
{
    /**
     * 
     * @var string
     */
    private $token;
    
    /**
     * 
     * @var $mixed
     */
    private $condition;
    
    
    public function __construct($options = null)
    {
        
        if (! array_key_exists('token', $options)) {
            throw new \InvalidArgumentException("Missing option 'token'");
        }
        
        if (! array_key_exists('condition', $options)) {
            throw new \InvalidArgumentException("Missing option 'condition'");
        }
        
        
        $this->token        =  $options['token'];
        $this->condition    =  $options['condition'];
        
        parent::__construct($options);
    }
    
    public function isValid($value, $context = null)
    {
        $token = isset($context[$this->token]) ? $context[$this->token] : '';
        if($token == $this->condition) {
            return parent::isValid($value, $context = null);
        } else {
            return true;
        }
    }
}