use zend router
[GitHub/Stricted/Domain-Control-Panel.git] / vendor / Zend / Stdlib / Guard / ArrayOrTraversableGuardTrait.php
1 <?php
2 /**
3 * Zend Framework (http://framework.zend.com/)
4 *
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
8 */
9
10 namespace Zend\Stdlib\Guard;
11
12 use Traversable;
13
14 /**
15 * Provide a guard method for array or Traversable data
16 */
17 trait ArrayOrTraversableGuardTrait
18 {
19 /**
20 * Verifies that the data is an array or Traversable
21 *
22 * @param mixed $data the data to verify
23 * @param string $dataName the data name
24 * @param string $exceptionClass FQCN for the exception
25 * @throws \Exception
26 */
27 protected function guardForArrayOrTraversable(
28 $data,
29 $dataName = 'Argument',
30 $exceptionClass = 'Zend\Stdlib\Exception\InvalidArgumentException'
31 ) {
32 if (!is_array($data) && !($data instanceof Traversable)) {
33 $message = sprintf(
34 "%s must be an array or Traversable, [%s] given",
35 $dataName,
36 is_object($data) ? get_class($data) : gettype($data)
37 );
38 throw new $exceptionClass($message);
39 }
40 }
41 }