~ubuntu-branches/ubuntu/wily/php-codesniffer/wily

« back to all changes in this revision

Viewing changes to PHP_CodeSniffer-1.5.4/CodeSniffer/Standards/Squiz/Sniffs/CSS/NamedColoursSniff.php

  • Committer: Package Import Robot
  • Author(s): David Prévot, Greg Sherwood, Dawid Nowak, Weston Ruter, David Prévot
  • Date: 2014-08-09 12:28:47 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20140809122847-giuxi3ezmeajasvy
Tags: 1.5.4-1
* Team upload

[ Greg Sherwood ]
* Removed use of sys_get_temp_dir() as this is not supported by the min PHP
  version
* Fixed bug #20268 : Incorrect documentation titles in PEAR documentation
* Generic ScopeIndentSniff now accounts for different open tag indents
* Forgot that short array token are detected by the tokenizer even on
  unsupported PHP versions
* Fixed bug #20296 : new array notion in function comma check fails
* Fixed bug #20310 : PSR2 does not check for space after function name
* Fixed bug #20309 : Use "member variable" term in sniff "processMemberVar"
  method
* Fixed bug #20307 : PHP_CodeSniffer_Standards_AbstractVariableSniff analyze
  traits
* Fixed bug #20308 : Squiz.ValidVariableNameSniff - wrong variable usage
* Squiz InlineCommentSniff no longer requires a blank line after
  post-statement comments (request #20299)
* Fixed bug #20322 : Display rules set to type=error even when suppressing
  warnings
* Invalid sniff codes passed to --sniffs now show a friendly error message
  (request #20313)
* Generic LineLengthSniff now shows a warning if the iconv module is disabled
  (request #20314)
* Fixed bug #20323 : PHPCS tries to load sniffs from hidden directories
* Squiz SelfMemberReferenceSniff now works correctly with namespaces
* Prepare for 1.5.4 release

[ Dawid Nowak ]
* Correct multiline call detection: PSR2_FunctionCallSignatureSniff (string
  with multiple lines doesn't  necessarily mean multiple lines call)

[ Weston Ruter ]
* Allow installed_paths to be relative to the phpcs root directory

[ David Prévot ]
* Update phpcs.1
* Add XS-Testsuite still needed for ci.d.n

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * Squiz_Sniffs_CSS_NamedColoursSniff.
 
4
 *
 
5
 * PHP version 5
 
6
 *
 
7
 * @category  PHP
 
8
 * @package   PHP_CodeSniffer
 
9
 * @author    Greg Sherwood <gsherwood@squiz.net>
 
10
 * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
 
11
 * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
 
12
 * @link      http://pear.php.net/package/PHP_CodeSniffer
 
13
 */
 
14
 
 
15
/**
 
16
 * Squiz_Sniffs_CSS_NamedColoursSniff.
 
17
 *
 
18
 * Ensure colour names are not used.
 
19
 *
 
20
 * @category  PHP
 
21
 * @package   PHP_CodeSniffer
 
22
 * @author    Greg Sherwood <gsherwood@squiz.net>
 
23
 * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600)
 
24
 * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence
 
25
 * @version   Release: 1.5.4
 
26
 * @link      http://pear.php.net/package/PHP_CodeSniffer
 
27
 */
 
28
class Squiz_Sniffs_CSS_NamedColoursSniff implements PHP_CodeSniffer_Sniff
 
29
{
 
30
 
 
31
    /**
 
32
     * A list of tokenizers this sniff supports.
 
33
     *
 
34
     * @var array
 
35
     */
 
36
    public $supportedTokenizers = array('CSS');
 
37
 
 
38
 
 
39
    /**
 
40
     * A list of named colours.
 
41
     *
 
42
     * This is the list of standard colours defined in the CSS spec.
 
43
     *
 
44
     * @var array
 
45
     */
 
46
    public $colourNames = array(
 
47
                           'aqua',
 
48
                           'black',
 
49
                           'blue',
 
50
                           'fuchsia',
 
51
                           'gray',
 
52
                           'green',
 
53
                           'lime',
 
54
                           'maroon',
 
55
                           'navy',
 
56
                           'olive',
 
57
                           'orange',
 
58
                           'purple',
 
59
                           'red',
 
60
                           'silver',
 
61
                           'teal',
 
62
                           'white',
 
63
                           'yellow',
 
64
                           );
 
65
 
 
66
 
 
67
    /**
 
68
     * Returns the token types that this sniff is interested in.
 
69
     *
 
70
     * @return int[]
 
71
     */
 
72
    public function register()
 
73
    {
 
74
        return array(T_STRING);
 
75
 
 
76
    }//end register()
 
77
 
 
78
 
 
79
    /**
 
80
     * Processes the tokens that this sniff is interested in.
 
81
     *
 
82
     * @param PHP_CodeSniffer_File $phpcsFile The file where the token was found.
 
83
     * @param int                  $stackPtr  The position in the stack where
 
84
     *                                        the token was found.
 
85
     *
 
86
     * @return void
 
87
     */
 
88
    public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr)
 
89
    {
 
90
        $tokens = $phpcsFile->getTokens();
 
91
 
 
92
        if ($tokens[($stackPtr - 1)]['code'] === T_HASH
 
93
            || $tokens[($stackPtr - 1)]['code'] === T_STRING_CONCAT
 
94
        ) {
 
95
            // Class name.
 
96
            return;
 
97
        }
 
98
 
 
99
        if (in_array(strtolower($tokens[$stackPtr]['content']), $this->colourNames) === true) {
 
100
            $error = 'Named colours are forbidden; use hex, rgb, or rgba values instead';
 
101
            $phpcsFile->addError($error, $stackPtr, 'Forbidden');
 
102
        }
 
103
 
 
104
    }//end process()
 
105
 
 
106
}//end class
 
107
?>