Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/Ecombricks/Framework/Validator/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/Ecombricks/Framework/Validator/Validator.php
<?php
/**
 * Copyright © eComBricks. All rights reserved.
 * See LICENSE.txt for license details.
 */
namespace Ecombricks\Framework\Validator;

/**
 * Validator
 */
class Validator extends \Zend_Validate
{
    
    /**
     * Object
     * 
     * @var \Magento\Framework\Model\AbstractModel
     */
    protected $object;
    
    /**
     * Label
     * 
     * @var string
     */
    protected $label = 'value';
    
    /**
     * Object label
     * 
     * @var string
     */
    protected $objectLabel = 'object';
    
    /**
     * Is required
     * 
     * @var bool
     */
    protected $isRequired = false;
    
    /**
     * Not empty validator
     * 
     * @var \Zend_Validate_NotEmpty
     */
    protected $notEmptyValidator;
    
    /**
     * Less validator
     * 
     * @var \Zend_Validate_LessThan
     */
    protected $lessValidator;
    
    /**
     * Less or equal validator
     * 
     * @var \Zend_Validate_LessThan
     */
    protected $lessOrEqualValidator;
    
    /**
     * Greater validator
     * 
     * @var \Zend_Validate_GreaterThan
     */
    protected $greaterValidator;
    
    /**
     * Greater or equal validator
     * 
     * @var \Zend_Validate_GreaterThan
     */
    protected $greaterOrEqualValidator;
    
    /**
     * In array validator
     * 
     * @var \Zend_Validate_InArray
     */
    protected $inArrayValidator;
    
    /**
     * Array validator
     * 
     * @var \Ecombricks\Framework\Validator\Plain\ArrayValidator
     */
    protected $arrayValidator;
    
    /**
     * Callback validator
     * 
     * @var \Zend_Validate_Callback
     */
    protected $callbackValidator;
    
    /**
     * Constructor
     * 
     * @param array $options
     * @return void
     */
    public function __construct($options = [])
    {
        $this->_construct();
        if (!empty($options['object'])) {
            $this->setObject($options['object']);
        }
        if (!empty($options['label'])) {
            $this->setLabel($options['label']);
        }
        if (!empty($options['object_label'])) {
            $this->setObjectLabel($options['object_label']);
        }
        if (isset($options['required'])) {
            $this->setIsRequired(($options['required']) ? true : false);
        }
    }
    
    /**
     * Initialize
     * 
     * @return $this
     */
    public function _construct()
    {
        return $this;
    }
    
    /**
     * Clear validators
     * 
     * @return $this
     */
    protected function clearValidators()
    {
        $this->_validators = [];
        return $this;
    }
    
    /**
     * Get object
     * 
     * @return \Magento\Framework\Model\AbstractModel
     * @throws \Magento\Framework\Exception\LocalizedException
     */
    public function getObject()
    {
        if (empty($this->object) || !($this->object instanceof \Magento\Framework\Model\AbstractModel)) {
            throw new \Magento\Framework\Exception\LocalizedException(__('Object is undefined for the validator.'));
        }
        return $this->object;
    }
    
    /**
     * Set object
     *
     * @param \Magento\Framework\Model\AbstractModel $object
     * @return $this
     * @throws \Magento\Framework\Exception\LocalizedException
     */
    public function setObject($object)
    {
        if (!($object instanceof \Magento\Framework\Model\AbstractModel)) {
            throw new \Magento\Framework\Exception\LocalizedException(__('Invalid object is passed to the validator.'));
        }
        $this->object = $object;
        return $this;
    }
    
    /**
     * Get label
     * 
     * @return string
     */
    public function getLabel()
    {
        return $this->label;
    }
    
    /**
     * Get label first letter uppercased
     * 
     * @return string
     */
    public function getLabelFirstLetterUppercased()
    {
        return ucfirst($this->getLabel());
    }
    
    /**
     * Set label
     * 
     * @param string $label
     * @return $this
     */
    public function setLabel($label)
    {
        $this->label = $label;
        return $this;
    }
    
    /**
     * Get object label
     * 
     * @return string
     */
    public function getObjectLabel()
    {
        return $this->objectLabel;
    }
    
    /**
     * Get object label first letter uppercased
     * 
     * @return string
     */
    public function getObjectLabelFirstLetterUppercased()
    {
        return ucfirst($this->getObjectLabel());
    }
    
    /**
     * Set object label
     * 
     * @param string $objectLabel
     * @return $this
     */
    public function setObjectLabel($objectLabel)
    {
        $this->objectLabel = $objectLabel;
        return $this;
    }
    
    /**
     * Get is required
     * 
     * @return bool
     */
    public function getIsRequired()
    {
        return $this->isRequired;
    }
    
    /**
     * Check if is required
     * 
     * @return bool
     */
    public function isRequired()
    {
        return $this->getIsRequired();
    }
    
    /**
     * Set is required
     * 
     * @param bool $isRequired
     * @return $this
     */
    public function setIsRequired($isRequired)
    {
        $this->isRequired = $isRequired;
        return $this;
    }
    
    /**
     * Check if not empty validator is set
     * 
     * @return bool
     */
    public function hasNotEmptyValidator()
    {
        return $this->notEmptyValidator !== null;
    }
    
    /**
     * Get not empty validator
     * 
     * @return \Zend_Validate_NotEmpty
     */
    public function getNotEmptyValidator()
    {
        if ($this->notEmptyValidator === null) {
            $validator = new \Zend_Validate_NotEmpty();
            $validator->setMessages([
                \Zend_Validate_NotEmpty::INVALID => __('%1 invalid type given.', $this->getLabelFirstLetterUppercased()),
                \Zend_Validate_NotEmpty::IS_EMPTY => __('%1 is required.', $this->getLabelFirstLetterUppercased())
            ]);
            $this->notEmptyValidator = $validator;
        }
        return $this->notEmptyValidator;
    }
    
    /**
     * Add not empty validator
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addNotEmptyValidator($value)
    {
        if (!$this->isRequired()) {
            return $this;
        }
        $this->addValidator(
            $this->getNotEmptyValidator()->setType(\Zend_Validate_NotEmpty::ALL),
            true
        );
        return $this;
    }
    
    /**
     * Check if less validator is set
     * 
     * @return bool
     */
    public function hasLessValidator()
    {
        return $this->lessValidator !== null;
    }
    
    /**
     * Get less validator
     * 
     * @return \Zend_Validate_LessThan
     */
    public function getLessValidator()
    {
        if ($this->lessValidator === null) {
            $validator = new \Zend_Validate_LessThan(['max' => 0]);
            $validator->setMessages([
                \Zend_Validate_LessThan::NOT_LESS => __('%1 must be less than %max%.', $this->getLabelFirstLetterUppercased()),
            ]);
            $this->lessValidator = $validator;
        }
        return $this->lessValidator;
    }
    
    /**
     * Add less validator
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addLessValidator($value)
    {
        if ($value === null) {
            return $this;
        }
        $this->addValidator($this->getLessValidator(), true);
        return $this;
    }
    
    /**
     * Check if less or equal validator is set
     * 
     * @return bool
     */
    public function hasLessOrEqualValidator()
    {
        return $this->lessOrEqualValidator !== null;
    }
    
    /**
     * Get less or equal validator
     * 
     * @return \Ecombricks\Framework\Validator\Plain\LessOrEqualValidator
     */
    public function getLessOrEqualValidator()
    {
        if ($this->lessOrEqualValidator === null) {
            $validator = new \Ecombricks\Framework\Validator\Plain\LessOrEqualValidator(['max' => 0]);
            $validator->setMessages([
                \Zend_Validate_LessThan::NOT_LESS => __('%1 must be less than or equal to %max%.', $this->getLabelFirstLetterUppercased()),
            ]);
            $this->lessOrEqualValidator = $validator;
        }
        return $this->lessOrEqualValidator;
    }
    
    /**
     * Add less or equal validator
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addLessOrEqualValidator($value)
    {
        if ($value === null) {
            return $this;
        }
        $this->addValidator($this->getLessOrEqualValidator(), true);
        return $this;
    }
    
    /**
     * Check if greater validator is set
     * 
     * @return bool
     */
    public function hasGreaterValidator()
    {
        return $this->greaterValidator !== null;
    }
    
    /**
     * Get greater validator
     * 
     * @return \Zend_Validate_GreaterThan
     */
    public function getGreaterValidator()
    {
        if ($this->greaterValidator === null) {
            $validator = new \Zend_Validate_GreaterThan(['min' => 0]);
            $validator->setMessages([
                \Zend_Validate_GreaterThan::NOT_GREATER => __('%1 must be greater than %min%.', $this->getLabelFirstLetterUppercased()),
            ]);
            $this->greaterValidator = $validator;
        }
        return $this->greaterValidator;
    }
    
    /**
     * Add greater validator
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addGreaterValidator($value)
    {
        if ($value === null) {
            return $this;
        }
        $this->addValidator($this->getGreaterValidator(), true);
        return $this;
    }
    
    /**
     * Check if greater or equal validator is set
     * 
     * @return bool
     */
    public function hasGreaterOrEqualValidator()
    {
        return $this->greaterOrEqualValidator !== null;
    }
    
    /**
     * Get greater or equal validator
     * 
     * @return \Ecombricks\Framework\Validator\Plain\GreaterOrEqualValidator
     */
    public function getGreaterOrEqualValidator()
    {
        if ($this->greaterOrEqualValidator === null) {
            $validator = new \Ecombricks\Framework\Validator\Plain\GreaterOrEqualValidator(['min' => 0]);
            $validator->setMessages([
                \Zend_Validate_GreaterThan::NOT_GREATER => __('%1 must be greater than or equal to %min%.', $this->getLabelFirstLetterUppercased()),
            ]);
            $this->greaterOrEqualValidator = $validator;
        }
        return $this->greaterOrEqualValidator;
    }
    
    /**
     * Add greater or equal validator
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addGreaterOrEqualValidator($value)
    {
        if ($value === null) {
            return $this;
        }
        $this->addValidator($this->getGreaterOrEqualValidator(), true);
        return $this;
    }
    
    /**
     * Checkif in array validator is set
     * 
     * @return bool
     */
    public function hasInArrayValidator()
    {
        return $this->inArrayValidator !== null;
    }
    
    /**
     * Get in array validator
     * 
     * @return \Zend_Validate_InArray
     */
    public function getInArrayValidator()
    {
        if ($this->inArrayValidator === null) {
            $validator = new \Zend_Validate_InArray([]);
            $validator->setMessages([
                \Zend_Validate_InArray::NOT_IN_ARRAY => __('%1 was not found in the haystack.', $this->getLabelFirstLetterUppercased()),
            ]);
            $this->inArrayValidator = $validator;
        }
        return $this->inArrayValidator;
    }
    
    /**
     * Add in array validator
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addInArrayValidator($value)
    {
        if ($value === null) {
            return $this;
        }
        $this->addValidator($this->getInArrayValidator(), true);
        return $this;
    }
    
    /**
     * Get array item validator
     * 
     * @return bool
     */
    public function getArrayItemValidator()
    {
        return null;
    }
    
    /**
     * Check if array validator is set
     * 
     * @return bool
     */
    public function hasArrayValidator()
    {
        return $this->arrayValidator !== null;
    }
    
    /**
     * Get array validator
     * 
     * @return \Ecombricks\Framework\Validator\Plain\ArrayValidator
     */
    public function getArrayValidator()
    {
        if ($this->arrayValidator === null) {
            $validator = new \Ecombricks\Framework\Validator\Plain\ArrayValidator(
                ['item_validator' => $this->getArrayItemValidator()]
            );
            $validator->setMessages([
                \Ecombricks\Framework\Validator\Plain\ArrayValidator::INVALID_ITEM => __('%1 contains invalid items.', $this->getLabelFirstLetterUppercased()),
            ]);
            $this->arrayValidator = $validator;
        }
        return $this->arrayValidator;
    }
    
    /**
     * Add array validator
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addArrayValidator($value)
    {
        if ($value === null) {
            return $this;
        }
        $this->addValidator($this->getArrayValidator(), true);
        return $this;
    }
    
    /**
     * Callback validator function
     * 
     * @param string $value
     * @return bool
     */
    public function callbackValidatorFunction($value)
    {
        return true;
    }
    
    /**
     * Check if callback validator is set
     * 
     * @return bool
     */
    public function hasCallbackValidator()
    {
        return $this->callbackValidator !== null;
    }
    
    /**
     * Get callback validator
     * 
     * @return \Zend_Validate_Callback
     */
    public function getCallbackValidator()
    {
        if ($this->callbackValidator === null) {
            $validator = new \Zend_Validate_Callback(['callback' => [$this, 'callbackValidatorFunction']]);
            $validator->setMessages([
                \Zend_Validate_Callback::INVALID_VALUE => __('%1 is invalid.', $this->getLabelFirstLetterUppercased())
            ]);
            $this->callbackValidator = $validator;
        }
        return $this->callbackValidator;
    }
    
    /**
     * Add callback validator
     * 
     * @param string $value
     * @return $this
     */
    protected function addCallbackValidator($value)
    {
        if ($value === null) {
            return $this;
        }
        $this->addValidator($this->getCallbackValidator(), true);
        return $this;
    }
    
    /**
     * Check uniqueness
     * 
     * @param string $value
     * @param string $method
     * @return bool
     * @throws \Magento\Framework\Exception\LocalizedException
     */
    protected function checkUniqueness($value, $method)
    {
        $object = $this->getObject();
        $resource = $object->getResource();
        if (!method_exists($resource, $method)) {
            throw new \Magento\Framework\Exception\LocalizedException(
                __('%1 method isn\'t found for the resource %2', $method, get_class($resource))
            );
        }
        $objectId = $resource->{$method}($value);
        return (empty($objectId) || ($objectId == $object->getId()));
    }
    
    /**
     * Add validators
     * 
     * @param mixed $value
     * @return $this
     */
    protected function addValidators($value)
    {
        $this->clearValidators();
        $this->addNotEmptyValidator($value);
        return $this;
    }
    
    /**
     * Check if is valid
     * 
     * @param mixed $value
     * @return bool
     */
    public function isValid($value)
    {
        $this->addValidators($value);
        return parent::isValid($value);
    }
    
}

Spamworldpro Mini