mirror of
https://github.com/torrentpier/torrentpier-lts.git
synced 2025-03-01 15:21:02 +03:00
184 lines
8.4 KiB
PHP
184 lines
8.4 KiB
PHP
<?php
|
|
/**
|
|
* Zend Framework (http://framework.zend.com/)
|
|
*
|
|
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
|
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
|
|
* @license http://framework.zend.com/license/new-bsd New BSD License
|
|
*/
|
|
|
|
namespace Zend\Validator;
|
|
|
|
use Zend\ServiceManager\AbstractPluginManager;
|
|
use Zend\ServiceManager\ConfigInterface;
|
|
|
|
class ValidatorPluginManager extends AbstractPluginManager
|
|
{
|
|
/**
|
|
* Default set of validators
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $invokableClasses = array(
|
|
'alnum' => 'Zend\I18n\Validator\Alnum',
|
|
'alpha' => 'Zend\I18n\Validator\Alpha',
|
|
'barcodecode25interleaved' => 'Zend\Validator\Barcode\Code25interleaved',
|
|
'barcodecode25' => 'Zend\Validator\Barcode\Code25',
|
|
'barcodecode39ext' => 'Zend\Validator\Barcode\Code39ext',
|
|
'barcodecode39' => 'Zend\Validator\Barcode\Code39',
|
|
'barcodecode93ext' => 'Zend\Validator\Barcode\Code93ext',
|
|
'barcodecode93' => 'Zend\Validator\Barcode\Code93',
|
|
'barcodeean12' => 'Zend\Validator\Barcode\Ean12',
|
|
'barcodeean13' => 'Zend\Validator\Barcode\Ean13',
|
|
'barcodeean14' => 'Zend\Validator\Barcode\Ean14',
|
|
'barcodeean18' => 'Zend\Validator\Barcode\Ean18',
|
|
'barcodeean2' => 'Zend\Validator\Barcode\Ean2',
|
|
'barcodeean5' => 'Zend\Validator\Barcode\Ean5',
|
|
'barcodeean8' => 'Zend\Validator\Barcode\Ean8',
|
|
'barcodegtin12' => 'Zend\Validator\Barcode\Gtin12',
|
|
'barcodegtin13' => 'Zend\Validator\Barcode\Gtin13',
|
|
'barcodegtin14' => 'Zend\Validator\Barcode\Gtin14',
|
|
'barcodeidentcode' => 'Zend\Validator\Barcode\Identcode',
|
|
'barcodeintelligentmail' => 'Zend\Validator\Barcode\Intelligentmail',
|
|
'barcodeissn' => 'Zend\Validator\Barcode\Issn',
|
|
'barcodeitf14' => 'Zend\Validator\Barcode\Itf14',
|
|
'barcodeleitcode' => 'Zend\Validator\Barcode\Leitcode',
|
|
'barcodeplanet' => 'Zend\Validator\Barcode\Planet',
|
|
'barcodepostnet' => 'Zend\Validator\Barcode\Postnet',
|
|
'barcoderoyalmail' => 'Zend\Validator\Barcode\Royalmail',
|
|
'barcodesscc' => 'Zend\Validator\Barcode\Sscc',
|
|
'barcodeupca' => 'Zend\Validator\Barcode\Upca',
|
|
'barcodeupce' => 'Zend\Validator\Barcode\Upce',
|
|
'barcode' => 'Zend\Validator\Barcode',
|
|
'between' => 'Zend\Validator\Between',
|
|
'bitwise' => 'Zend\Validator\Bitwise',
|
|
'callback' => 'Zend\Validator\Callback',
|
|
'creditcard' => 'Zend\Validator\CreditCard',
|
|
'csrf' => 'Zend\Validator\Csrf',
|
|
'date' => 'Zend\Validator\Date',
|
|
'datestep' => 'Zend\Validator\DateStep',
|
|
'datetime' => 'Zend\I18n\Validator\DateTime',
|
|
'dbnorecordexists' => 'Zend\Validator\Db\NoRecordExists',
|
|
'dbrecordexists' => 'Zend\Validator\Db\RecordExists',
|
|
'digits' => 'Zend\Validator\Digits',
|
|
'emailaddress' => 'Zend\Validator\EmailAddress',
|
|
'explode' => 'Zend\Validator\Explode',
|
|
'filecount' => 'Zend\Validator\File\Count',
|
|
'filecrc32' => 'Zend\Validator\File\Crc32',
|
|
'fileexcludeextension' => 'Zend\Validator\File\ExcludeExtension',
|
|
'fileexcludemimetype' => 'Zend\Validator\File\ExcludeMimeType',
|
|
'fileexists' => 'Zend\Validator\File\Exists',
|
|
'fileextension' => 'Zend\Validator\File\Extension',
|
|
'filefilessize' => 'Zend\Validator\File\FilesSize',
|
|
'filehash' => 'Zend\Validator\File\Hash',
|
|
'fileimagesize' => 'Zend\Validator\File\ImageSize',
|
|
'fileiscompressed' => 'Zend\Validator\File\IsCompressed',
|
|
'fileisimage' => 'Zend\Validator\File\IsImage',
|
|
'filemd5' => 'Zend\Validator\File\Md5',
|
|
'filemimetype' => 'Zend\Validator\File\MimeType',
|
|
'filenotexists' => 'Zend\Validator\File\NotExists',
|
|
'filesha1' => 'Zend\Validator\File\Sha1',
|
|
'filesize' => 'Zend\Validator\File\Size',
|
|
'fileupload' => 'Zend\Validator\File\Upload',
|
|
'fileuploadfile' => 'Zend\Validator\File\UploadFile',
|
|
'filewordcount' => 'Zend\Validator\File\WordCount',
|
|
'float' => 'Zend\I18n\Validator\Float',
|
|
'greaterthan' => 'Zend\Validator\GreaterThan',
|
|
'hex' => 'Zend\Validator\Hex',
|
|
'hostname' => 'Zend\Validator\Hostname',
|
|
'iban' => 'Zend\Validator\Iban',
|
|
'identical' => 'Zend\Validator\Identical',
|
|
'inarray' => 'Zend\Validator\InArray',
|
|
'int' => 'Zend\I18n\Validator\Int',
|
|
'ip' => 'Zend\Validator\Ip',
|
|
'isbn' => 'Zend\Validator\Isbn',
|
|
'isinstanceof' => 'Zend\Validator\IsInstanceOf',
|
|
'lessthan' => 'Zend\Validator\LessThan',
|
|
'notempty' => 'Zend\Validator\NotEmpty',
|
|
'phonenumber' => 'Zend\I18n\Validator\PhoneNumber',
|
|
'postcode' => 'Zend\I18n\Validator\PostCode',
|
|
'regex' => 'Zend\Validator\Regex',
|
|
'sitemapchangefreq' => 'Zend\Validator\Sitemap\Changefreq',
|
|
'sitemaplastmod' => 'Zend\Validator\Sitemap\Lastmod',
|
|
'sitemaploc' => 'Zend\Validator\Sitemap\Loc',
|
|
'sitemappriority' => 'Zend\Validator\Sitemap\Priority',
|
|
'stringlength' => 'Zend\Validator\StringLength',
|
|
'step' => 'Zend\Validator\Step',
|
|
'uri' => 'Zend\Validator\Uri',
|
|
);
|
|
|
|
/**
|
|
* Whether or not to share by default; default to false
|
|
*
|
|
* @var bool
|
|
*/
|
|
protected $shareByDefault = false;
|
|
|
|
/**
|
|
* Constructor
|
|
*
|
|
* After invoking parent constructor, add an initializer to inject the
|
|
* attached translator, if any, to the currently requested helper.
|
|
*
|
|
* @param null|ConfigInterface $configuration
|
|
*/
|
|
public function __construct(ConfigInterface $configuration = null)
|
|
{
|
|
parent::__construct($configuration);
|
|
$this->addInitializer(array($this, 'injectTranslator'));
|
|
$this->addInitializer(array($this, 'injectValidatorPluginManager'));
|
|
}
|
|
|
|
/**
|
|
* Inject a validator instance with the registered translator
|
|
*
|
|
* @param ValidatorInterface $validator
|
|
* @return void
|
|
*/
|
|
public function injectTranslator($validator)
|
|
{
|
|
if ($validator instanceof Translator\TranslatorAwareInterface) {
|
|
$locator = $this->getServiceLocator();
|
|
if ($locator && $locator->has('MvcTranslator')) {
|
|
$validator->setTranslator($locator->get('MvcTranslator'));
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Inject a validator plugin manager
|
|
*
|
|
* @param $validator
|
|
* @return void
|
|
*/
|
|
public function injectValidatorPluginManager($validator)
|
|
{
|
|
if ($validator instanceof ValidatorPluginManagerAwareInterface) {
|
|
$validator->setValidatorPluginManager($this);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Validate the plugin
|
|
*
|
|
* Checks that the validator loaded is an instance of ValidatorInterface.
|
|
*
|
|
* @param mixed $plugin
|
|
* @return void
|
|
* @throws Exception\RuntimeException if invalid
|
|
*/
|
|
public function validatePlugin($plugin)
|
|
{
|
|
if ($plugin instanceof ValidatorInterface) {
|
|
// we're okay
|
|
return;
|
|
}
|
|
|
|
throw new Exception\RuntimeException(sprintf(
|
|
'Plugin of type %s is invalid; must implement %s\ValidatorInterface',
|
|
(is_object($plugin) ? get_class($plugin) : gettype($plugin)),
|
|
__NAMESPACE__
|
|
));
|
|
}
|
|
}
|