You are here

NumberOfParameterFilter.php in Zircon Profile 8

File

vendor/zendframework/zend-hydrator/src/Filter/NumberOfParameterFilter.php
View source
<?php

/**
 * Zend Framework (http://framework.zend.com/)
 *
 * @link           http://github.com/zendframework/zf2 for the canonical source repository
 * @copyright      Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
 * @license        http://framework.zend.com/license/new-bsd New BSD License
 */
namespace Zend\Hydrator\Filter;

use ReflectionException;
use ReflectionMethod;
use Zend\Hydrator\Exception\InvalidArgumentException;
class NumberOfParameterFilter implements FilterInterface {

  /**
   * The number of parameters beeing accepted
   * @var int
   */
  protected $numberOfParameters = null;

  /**
   * @param int $numberOfParameters Number of accepted parameters
   */
  public function __construct($numberOfParameters = 0) {
    $this->numberOfParameters = (int) $numberOfParameters;
  }

  /**
   * @param string $property the name of the property
   * @return bool
   * @throws InvalidArgumentException
   */
  public function filter($property) {
    try {
      $reflectionMethod = new ReflectionMethod($property);
    } catch (ReflectionException $exception) {
      throw new InvalidArgumentException("Method {$property} doesn't exist");
    }
    return $reflectionMethod
      ->getNumberOfParameters() === $this->numberOfParameters;
  }

}

Classes