UglifyGlobal::getSourceFile()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 1
c 1
b 0
f 1
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
/**
3
 * @author Gerard van Helden <[email protected]>
4
 * @copyright Zicht Online <http://zicht.nl>
5
 */
6
namespace Zicht\Bundle\FrameworkExtraBundle\Twig;
7
8
9
/**
10
 * Helper twig global for zicht_uglify configuration
11
 */
12
class UglifyGlobal implements \ArrayAccess, \IteratorAggregate
13
{
14
    /**
15
     * Constructor
16
     *
17
     * @param array $config
18
     * @param bool $debug
19
     */
20
    public function __construct($config, $debug = false)
21
    {
22
        $this->config = $config;
0 ignored issues
show
Bug Best Practice introduced by
The property config does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
23
        $this->debug = $debug;
0 ignored issues
show
Bug Best Practice introduced by
The property debug does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
24
    }
25
26
27
    /**
28
     * Set debugging flag. With debugging on, the source files are used as resources in stead of the target files.
29
     *
30
     * @param bool $debug
31
     * @return void
32
     */
33
    public function setDebug($debug)
34
    {
35
        $this->debug = (bool)$debug;
0 ignored issues
show
Bug Best Practice introduced by
The property debug does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
36
    }
37
38
39
    /**
40
     * Get the source file prefixed with the source directory.
41
     *
42
     * @param string $file
43
     * @return string
44
     */
45
    public function getSourceFile($file)
46
    {
47
        return ltrim($this->config['src_dir'] . '/' . $file, '/');
48
    }
49
50
51
    /**
52
     * Get the target file prefixed with the source directory.
53
     *
54
     * @param string $file
55
     * @return string
56
     */
57
    public function getTargetFile($file)
58
    {
59
        return ltrim($this->config['target_dir'] . '/' . $file, '/');
60
    }
61
62
63
    /**
64
     * @{inheritDoc}
65
     */
66
    public function offsetExists($offset)
67
    {
68
        return isset($this->config['resources'][$offset]);
69
    }
70
71
    /**
72
     * @{inheritDoc}
73
     */
74
    public function offsetGet($offset)
75
    {
76
        if ($this->debug) {
77
            return array_map(
78
                array($this, 'getSourceFile'),
79
                $this->config['resources'][$offset]['files']
80
            );
81
        } else {
82
            return array($this->getTargetFile($offset));
83
        }
84
    }
85
86
    /**
87
     * @{inheritDoc}
88
     */
89
    public function offsetSet($offset, $value)
90
    {
91
        throw new \RuntimeException(__CLASS__ . ' is read-only');
92
    }
93
94
    /**
95
     * @{inheritDoc}
96
     */
97
    public function offsetUnset($offset)
98
    {
99
        throw new \RuntimeException(__CLASS__ . ' is read-only');
100
    }
101
102
    /**
103
     * @{inheritDoc}
104
     */
105
    public function getIterator()
106
    {
107
        $ret = array();
108
        foreach (array_keys($this->config['resources']) as $key) {
109
            $ret[$key] = $this[$key];
110
        }
111
        return new \ArrayIterator($ret);
112
    }
113
}
114