Completed
Push — master ( e401e5...bd7189 )
by Julien
01:48
created

Exceptions/InvalidCallableDefinition.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * Fwk
4
 *
5
 * Copyright (c) 2011-2012, Julien Ballestracci <[email protected]>.
6
 * All rights reserved.
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 *
11
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
12
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
13
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
15
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
16
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
17
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
18
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
19
 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
21
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
22
 * POSSIBILITY OF SUCH DAMAGE.
23
 *
24
 * PHP Version 5.3
25
 *
26
 * @category  DependencyInjection
27
 * @package   Fwk\Di
28
 * @author    Julien Ballestracci <[email protected]>
29
 * @copyright 2011-2014 Julien Ballestracci <[email protected]>
30
 * @license   http://www.opensource.org/licenses/bsd-license.php  BSD License
31
 * @link      http://www.nitronet.org/fwk
32
 */
33
namespace Fwk\Di\Exceptions;
34
35
use Fwk\Di\Exception;
36
37
/**
38
 * InvalidCallableDefinition
39
 * 
40
 * @category Exceptions
41
 * @package  Fwk\Di
42
 * @author   Julien Ballestracci <[email protected]>
43
 * @license  http://www.opensource.org/licenses/bsd-license.php  BSD License
44
 * @link     http://www.nitronet.org/fwk
45
 */
46
class InvalidCallableDefinition extends Exception
47
{
48
    /**
49
     * Constructor
50
     * 
51
     * @param mixed           $callable   Callable
52
     * @param null|string     $definition Name of the current definition (if any)
53
     * @param null|\Exception $prev       Previous Exception
54
     * 
55
     * @return void
0 ignored issues
show
Comprehensibility Best Practice introduced by
Adding a @return annotation to constructors is generally not recommended as a constructor does not have a meaningful return value.

Adding a @return annotation to a constructor is not recommended, since a constructor does not have a meaningful return value.

Please refer to the PHP core documentation on constructors.

Loading history...
56
     */
57
    public function __construct($callable, $definition = null,
58
        $prev = null
59
    ) {
60
        if (is_array($callable)) {
61
            $class = (isset($callable[0]) ? $callable[0] : 'undefined');
62
            $method = (isset($callable[1]) ?$callable[1] : 'undefined');
63
            
64
            $txt = sprintf(
65
                "%s::%s()",
66
                (is_object($class) ? get_class($class) : (string)$class),
67
                (is_string($method) ? $method : print_r($method, true))
68
            );
69
        } else {
70
            $txt = (string)$callable;
71
        }
72
        
73
        parent::__construct(
74
            "[$definition] Callable $txt is invalid", 
75
            null, 
76
            $prev
77
        );
78
    }
79
}