PluginStrip   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 0
Metric Value
dl 0
loc 58
rs 10
c 0
b 0
f 0
wmc 6
lcom 0
cbo 2

3 Methods

Rating   Name   Duplication   Size   Complexity  
A init() 0 3 1
A preProcessing() 0 4 1
A postProcessing() 0 25 4
1
<?php
2
/**
3
 * Copyright (c) 2013-2016
4
 *
5
 * @category  Library
6
 * @package   Dwoo\Plugins\Blocks
7
 * @author    Jordi Boggiano <[email protected]>
8
 * @author    David Sanchez <[email protected]>
9
 * @copyright 2008-2013 Jordi Boggiano
10
 * @copyright 2013-2016 David Sanchez
11
 * @license   http://dwoo.org/LICENSE Modified BSD License
12
 * @version   1.3.0
13
 * @date      2016-09-19
14
 * @link      http://dwoo.org/
15
 */
16
17
namespace Dwoo\Plugins\Blocks;
18
19
use Dwoo\Compiler;
20
use Dwoo\Block\Plugin as BlockPlugin;
21
use Dwoo\ICompilable\Block as ICompilableBlock;
22
23
/**
24
 * Strips the spaces at the beginning and end of each line and also the line breaks
25
 * <pre>
26
 *  * mode : sets the content being stripped, available mode are 'default' or 'js'
27
 *    for javascript, which strips the comments to prevent syntax errors
28
 * </pre>.
29
 * This software is provided 'as-is', without any express or implied warranty.
30
 * In no event will the authors be held liable for any damages arising from the use of this software.
31
 */
32
class PluginStrip extends BlockPlugin implements ICompilableBlock
33
{
34
    /**
35
     * @param string $mode
36
     */
37
    public function init($mode = 'default')
0 ignored issues
show
Unused Code introduced by
The parameter $mode is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
38
    {
39
    }
40
41
    /**
42
     * @param Compiler $compiler
43
     * @param array    $params
44
     * @param string   $prepend
45
     * @param string   $append
46
     * @param string   $type
47
     *
48
     * @return string
49
     */
50
    public static function preProcessing(Compiler $compiler, array $params, $prepend, $append, $type)
51
    {
52
        return '';
53
    }
54
55
    /**
56
     * @param Compiler $compiler
57
     * @param array    $params
58
     * @param string   $prepend
59
     * @param string   $append
60
     * @param string   $content
61
     *
62
     * @return mixed|string
63
     */
64
    public static function postProcessing(Compiler $compiler, array $params, $prepend, $append, $content)
65
    {
66
        $params = $compiler->getCompiledParams($params);
67
68
        $mode = trim($params['mode'], '"\'');
69
        switch ($mode) {
70
            case 'js':
71
            case 'javascript':
0 ignored issues
show
Coding Style introduced by
There must be a comment when fall-through is intentional in a non-empty case body
Loading history...
72
                $content = preg_replace('#(?<!:)//\s[^\r\n]*|/\*.*?\*/#s', '', $content);
73
74
            case 'default':
75
            default:
76
        }
77
        $content = preg_replace(array(
78
            "/\n/",
79
            "/\r/",
80
            '/(<\?(?:php)?|<%)\s*/'
81
        ), array(
82
            '',
83
            '',
84
            '$1 '
85
        ), preg_replace('#^\s*(.+?)\s*$#m', '$1', $content));
86
87
        return $content;
88
    }
89
}
90