116101f1b25426881104aee8112351b13b76c278
[yaffs-website] / vendor / zendframework / zend-stdlib / src / 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 }