Validator::__callStatic()   B
last analyzed

Complexity

Conditions 6
Paths 6

Size

Total Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 25
rs 8.8977
c 0
b 0
f 0
cc 6
nc 6
nop 2
1
<?php namespace Darryldecode\Cart\Validators;
2
use Illuminate\Filesystem\Filesystem;
3
use Illuminate\Translation\FileLoader;
4
use Illuminate\Translation\Translator;
5
use Illuminate\Validation\Factory;
6
7
/**
8
 * Created by PhpStorm.
9
 * User: darryl
10
 * Date: 1/16/2015
11
 * Time: 10:59 AM
12
 */
13
14
abstract class Validator {
15
16
    protected static $factory;
17
18
    public static function instance()
19
    {
20
        if ( ! static::$factory)
21
        {
22
            $loader = new FileLoader(
23
                new Filesystem(),'/Translations'
24
            );
25
26
            $translator = new Translator($loader, 'en');
27
            static::$factory = new Factory($translator);
28
        }
29
30
        return static::$factory;
31
    }
32
33
    public static function __callStatic($method, $args)
34
    {
35
        $instance = static::instance();
36
37
        switch (count($args))
38
        {
39
            case 0:
40
                return $instance->$method();
41
42
            case 1:
43
                return $instance->$method($args[0]);
44
45
            case 2:
46
                return $instance->$method($args[0], $args[1]);
47
48
            case 3:
49
                return $instance->$method($args[0], $args[1], $args[2]);
50
51
            case 4:
52
                return $instance->$method($args[0], $args[1], $args[2], $args[3]);
53
54
            default:
55
                return call_user_func_array(array($instance, $method), $args);
56
        }
57
    }
58
}