<?xml version="1.0" encoding="iso-8859-1"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
>
    <channel rdf:about="http://pear.php.net">
    <link>http://pear.php.net/</link>
    <dc:creator>pear-webmaster@lists.php.net</dc:creator>
    <dc:publisher>pear-webmaster@lists.php.net</dc:publisher>
    <dc:language>en-us</dc:language><items>
<rdf:Seq><rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.2/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.1/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0RC2/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0RC1/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0a1/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.2/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.1/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.0/"/>
<rdf:li rdf:resource="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.0RC3/"/>
</rdf:Seq>
</items>

<title>Latest releases of php_codesniffer</title>
<description>The latest releases for the package php_codesniffer</description>
</channel>

<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.2/">
 <title>PHP_CodeSniffer 1.3.2</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.3.2/</link>
 <content:encoded>- Added Generic JSHintSniff to run jshint.js over a JS file and report warnings&lt;br /&gt;
  -- Set jshint path using phpcs --config-set jshint_path /path/to/jshint-rhino.js&lt;br /&gt;
  -- Set rhino path using phpcs --config-set rhino_path /path/to/rhino&lt;br /&gt;
  -- Thanks to Alexander Weiß for the contribution&lt;br /&gt;
- Nowdocs are now tokenized using PHP_CodeSniffer specific T_NOWDOC tokens for easier identification&lt;br /&gt;
- Generic UpperCaseConstantNameSniff no longer throws errors for namespaces&lt;br /&gt;
  -- Thanks to Jaroslav Hanslík for the patch&lt;br /&gt;
- Squiz NonExecutableCodeSniff now detects code after thrown exceptions&lt;br /&gt;
  -- Thanks to Jaroslav Hanslík for the patch&lt;br /&gt;
- Squiz OperatorSpacingSniff now ignores references&lt;br /&gt;
  -- Thanks to Jaroslav Hanslík for the patch&lt;br /&gt;
- Squiz FunctionCommentSniff now reports a missing function comment if it finds a standard code comment instead&lt;br /&gt;
- Squiz FunctionCommentThrownTagSniff no longer reports errors if it can't find a function comment&lt;br /&gt;
- Fixed unit tests not running under Windows&lt;br /&gt;
  -- Thanks to Jaroslav Hanslík for the patch&lt;br /&gt;
- Fixed bug #18964 : &quot;$stackPtr must be of type T_VARIABLE&quot; on heredocs and nowdocs&lt;br /&gt;
- Fixed bug #18973 : phpcs is looking for variables in a nowdoc&lt;br /&gt;
- Fixed bug #18974 : Blank line causes &quot;Multi-line function call not indented correctly&quot;&lt;br /&gt;
  -- Adds new error message to ban empty lines in multi-line function calls&lt;br /&gt;
- Fixed bug #18975 : &quot;Closing parenthesis must be on a line by itself&quot; also causes indentation error
 </content:encoded>
 <dc:date>2011-12-01T05:24:39-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.1/">
 <title>PHP_CodeSniffer 1.3.1</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.3.1/</link>
 <content:encoded>- All report file command line arguments now work with relative paths (request #17240)&lt;br /&gt;
- The extensions command line argument now supports multi-part file extensions (request #17227)&lt;br /&gt;
- Added report type --report=hgblame to show number of errors/warnings committed by authors in a Mercurial repository&lt;br /&gt;
    -- Has the same functionality as the svnblame report&lt;br /&gt;
    -- Thanks to Ben Selby for the patch&lt;br /&gt;
- Added T_BACKTICK token type to make detection of backticks easier (request #18799)&lt;br /&gt;
- Added pattern matching support to Generic ForbiddenFunctionsSniff&lt;br /&gt;
    -- If you are extending it and overriding register() or addError() you will need to review your sniff&lt;br /&gt;
- Namespaces are now recognised as scope openers, although they do not require braces (request #18043)&lt;br /&gt;
- Added new ByteOrderMarkSniff to Generic standard (request #18194)&lt;br /&gt;
  -- Throws an error if a byte order mark is found in any PHP file&lt;br /&gt;
  -- Thanks to Piotr Karas for the contribution&lt;br /&gt;
- PHP_Timer output is no longer included in reports when being written to a file (request #18252)&lt;br /&gt;
  -- Also now shown for all report types if nothing is being printed to the screen&lt;br /&gt;
- Generic DeprecatedFunctionSniff now reports functions as deprecated and not simply forbidden (request #18288)&lt;br /&gt;
- PHPCS now accepts file contents from STDIN (request #18447)&lt;br /&gt;
  -- Example usage: cat temp.php | phpcs [options]  -OR-  phpcs [options] &lt; temp.php&lt;br /&gt;
  -- Not every sniff will work correctly due to the lack of a valid file path&lt;br /&gt;
- PHP_CodeSniffer_Exception no longer extends PEAR_Exception (request #18483)&lt;br /&gt;
  -- PEAR_Exception added a requirement that PEAR had to be installed&lt;br /&gt;
  -- PHP_CodeSniffer is not used as a library, so unlikely to have any impact&lt;br /&gt;
- PEAR FileCommentSniff now allows GIT IDs in the version tag (request #14874)&lt;br /&gt;
- AbstractVariableSniff now supports heredocs&lt;br /&gt;
  -- Also includes some variable detection fixes&lt;br /&gt;
  -- Thanks to Sam Graham for the patch&lt;br /&gt;
- Squiz FileCommentSniff now enforces rule that package names cannot start with the word Squiz&lt;br /&gt;
- MySource AssignThisSniff now allows &quot;this&quot; to be assigned to the private var _self&lt;br /&gt;
- Fixed issue in Squiz FileCommentSniff where suggested package name was the same as the incorrect package name&lt;br /&gt;
- Fixed some issues with Squiz ArrayDeclarationSniff when using function calls in array values&lt;br /&gt;
- Fixed doc generation so it actually works again&lt;br /&gt;
  - Also now works when being run from an SVN checkout as well as when installed as a PEAR package&lt;br /&gt;
  - Should fix bug #18949 : Call to private method from static&lt;br /&gt;
- PEAR ClassDeclaration sniff now supports indentation checks when using the alternate namespace syntax&lt;br /&gt;
  - PEAR.Classes.ClassDeclaration.SpaceBeforeBrace message now contains 2 variables instead of 1&lt;br /&gt;
  - Sniff allows overriding of the default indent level, which is set to 4&lt;br /&gt;
  - Fixes bug #18933 : Alternative namespace declaration syntax confuses scope sniffs&lt;br /&gt;
- Fixed bug #18465 : &quot;self::&quot; does not work in lambda functions&lt;br /&gt;
  -- Also corrects conversion of T_FUNCTION tokens to T_CLOSURE, which was not fixing token condition arrays&lt;br /&gt;
- Fixed bug #18543 : CSS Tokenizer deletes too many #&lt;br /&gt;
- Fixed bug #18624 : @throws namespace problem&lt;br /&gt;
  -- Thanks to Gavin Davies for the patch&lt;br /&gt;
- Fixed bug #18628 : Generic.Files.LineLength gives incorrect results with Windows line-endings&lt;br /&gt;
- Fixed bug #18633 : CSS Tokenizer doesn't replace T_LIST tokens inside some styles&lt;br /&gt;
- Fixed bug #18657 : anonymous functions wrongly indented&lt;br /&gt;
- Fixed bug #18670 : UpperCaseConstantNameSniff fails on dynamic retrieval of class constant&lt;br /&gt;
- Fixed bug #18709 : Code sniffer sniffs file if even if it's in --ignore&lt;br /&gt;
  -- Thanks to Artem Lopata for the patch&lt;br /&gt;
- Fixed bug #18762 : Incorrect handling of define and constant in UpperCaseConstantNameSniff&lt;br /&gt;
  -- Thanks to Thomas Baker for the patch&lt;br /&gt;
- Fixed bug #18769 : CSS Tokenizer doesn't replace T_BREAK tokens inside some styles&lt;br /&gt;
- Fixed bug #18835 : Unreachable errors of inline returns of closure functions&lt;br /&gt;
  -- Thanks to Patrick Schmidt for the patch&lt;br /&gt;
- Fixed bug #18839 : Fix miscount of warnings in AbstractSniffUnitTest.php&lt;br /&gt;
  -- Thanks to Sam Graham for the patch&lt;br /&gt;
- Fixed bug #18844 : Generic_Sniffs_CodeAnalysis_UnusedFunctionParameterSniff with empty body&lt;br /&gt;
  -- Thanks to Dmitri Medvedev for the patch&lt;br /&gt;
- Fixed bug #18847 : Running Squiz_Sniffs_Classes_ClassDeclarationSniff results in PHP notice&lt;br /&gt;
- Fixed bug #18868 : jslint+rhino: errors/warnings not detected&lt;br /&gt;
  -- Thanks to Christian Weiske for the patch&lt;br /&gt;
- Fixed bug #18879 : phpcs-svn-pre-commit requires escapeshellarg&lt;br /&gt;
  -- Thanks to Bjorn Katuin for the patch&lt;br /&gt;
- Fixed bug #18951 : weird behaviour with closures and multi-line use () params
 </content:encoded>
 <dc:date>2011-11-03T00:21:54-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0/">
 <title>PHP_CodeSniffer 1.3.0</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0/</link>
 <content:encoded>- Add a new token T_CLOSURE that replaces T_FUNCTION if the function keyword is anonymous&lt;br /&gt;
- Many Squiz sniffs no longer report errors when checking closures; they are now ignored&lt;br /&gt;
- Fixed some error messages in PEAR MultiLineConditionSniff that were not using placeholders for message data&lt;br /&gt;
- AbstractVariableSniff now correctly finds variable names wrapped with curly braces inside double quoted strings&lt;br /&gt;
- PEAR FunctionDeclarationSniff now ignores arrays in argument default values when checking multi-line declarations&lt;br /&gt;
- Fixed bug #18200 : Using custom named ruleset file as standard no longer works&lt;br /&gt;
- Fixed bug #18196 : PEAR MultiLineCondition.SpaceBeforeOpenBrace not consistent with newline chars&lt;br /&gt;
- Fixed bug #18204 : FunctionCommentThrowTag picks wrong exception type when throwing function call&lt;br /&gt;
- Fixed bug #18222 : Add __invoke method to PEAR standard&lt;br /&gt;
- Fixed bug #18235 : Invalid error generation in Squiz.Commenting.FunctionCommentThrowTag&lt;br /&gt;
- Fixed bug #18250 : --standard with relative path skips Standards' &quot;implicit&quot; sniffs&lt;br /&gt;
- Fixed bug #18274 : Multi-line IF and function call indent rules conflict&lt;br /&gt;
- Fixed bug #18282 : Squiz doesn't handle final keyword before function comments&lt;br /&gt;
  -- Thanks to Dave Perrett for the patch&lt;br /&gt;
- Fixed bug #18336 : Function isUnderscoreName gives php notices
 </content:encoded>
 <dc:date>2011-03-17T04:48:48-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0RC2/">
 <title>PHP_CodeSniffer 1.3.0RC2</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0RC2/</link>
 <content:encoded>- You can now print multiple reports for each run and print each to the screen or a file (request #12434)&lt;br /&gt;
  -- Format is --report-[report][=file] (e.g., --report-xml=out.xml)&lt;br /&gt;
  -- Printing to screen is done by leaving [file] empty (e.g., --report-xml)&lt;br /&gt;
  -- Multiple reports can be specified in this way (e.g., --report-summary --report-xml=out.xml)&lt;br /&gt;
  -- The standard --report and --report-file command line arguments are unchanged&lt;br /&gt;
- Added -d command line argument to set php.ini settings while running (request #17244)&lt;br /&gt;
  -- Usage is: phpcs -d memory_limit=32M -d ...&lt;br /&gt;
  -- Thanks to Ben Selby for the patch&lt;br /&gt;
- Added -p command line argument to show progress during a run&lt;br /&gt;
  -- Dot means pass, E means errors found, W means only warnings found and S means skipped file&lt;br /&gt;
  -- Particularly good for runs where you are checking more than 100 files&lt;br /&gt;
  -- Enable by default with --config-set show_progress 1&lt;br /&gt;
  -- Will not print anything if you are already printing verbose output&lt;br /&gt;
  -- This has caused a big change in the way PHP_CodeSniffer processes files (API changes around processing)&lt;br /&gt;
- You can now add exclude rules for individual sniffs or error messages (request #17903)&lt;br /&gt;
  -- Only available when using a ruleset.xml file to specify rules&lt;br /&gt;
  -- Uses the same exclude-pattern tags as normal but allows them inside rule tags&lt;br /&gt;
- Using the -vvv option will now print a list of sniffs executed for each file and how long they took to process&lt;br /&gt;
- Added Generic ClosureLinterSniff to run Google's gjslint over your JS files&lt;br /&gt;
- The XML and CSV reports now include the severity of the error (request #18165)&lt;br /&gt;
  -- The Severity column in the CSV report has been renamed to Type, and a new Severity column added for this&lt;br /&gt;
- Fixed issue with Squiz FunctionCommentSniff reporting incorrect type hint when default value uses namespace&lt;br /&gt;
  -- Thanks to Anti Veeranna for the patch&lt;br /&gt;
- Generic FileLengthSniff now uses iconv_strlen to check line length if an encoding is specified (request #14237)&lt;br /&gt;
- Generic UnnecessaryStringConcatSniff now allows strings to be combined to form a PHP open or close tag&lt;br /&gt;
- Squiz SwitchDeclarationSniff no longer reports indentation errors for BREAK statements inside IF conditions&lt;br /&gt;
- Interactive mode now always prints the full error report (ignores command line)&lt;br /&gt;
- Improved regular expression detection in JavaScript files&lt;br /&gt;
  -- Added new T_TYPEOF token that can be used to target the typeof JS operator&lt;br /&gt;
  -- Fixes bug #17611 : Regular expression tokens not recognised&lt;br /&gt;
- Squiz ScopeIndentSniff removed&lt;br /&gt;
  -- Squiz standard no longer requires additional indents between ob_* methods&lt;br /&gt;
  -- Also removed Squiz OutputBufferingIndentSniff that was checking the same thing&lt;br /&gt;
- PHP_CodeSniffer_File::getMemberProperties() performance improved significantly&lt;br /&gt;
  -- Improves performance of Squiz ValidVariableNameSniff significantly&lt;br /&gt;
- Squiz OperatorSpacingSniff performance improved significantly&lt;br /&gt;
- Squiz NonExecutableCodeSniff performance improved significantly&lt;br /&gt;
  -- Will throw duplicate errors in some cases now, but these should be rare&lt;br /&gt;
- MySource IncludeSystemSniff performance improved significantly&lt;br /&gt;
- MySource JoinStringsSniff no longer reports an error when using join() on a named JS array&lt;br /&gt;
- Warnings are now reported for each file when they cannot be opened instead of stopping the script&lt;br /&gt;
  -- Hide warnings with the -n command line argument&lt;br /&gt;
  -- Can override the warnings using the code Internal.DetectLineEndings&lt;br /&gt;
- Fixed bug #17693 : issue with pre-commit hook script with filenames that start with v&lt;br /&gt;
- Fixed bug #17860 : isReference function fails with references in array&lt;br /&gt;
  -- Thanks to Lincoln Maskey for the patch&lt;br /&gt;
- Fixed bug #17902 : Cannot run tests when tests are symlinked into tests dir&lt;br /&gt;
  -- Thanks to Matt Button for the patch&lt;br /&gt;
- Fixed bug #17928 : Improve error message for Generic_Sniffs_PHP_UpperCaseConstantSniff&lt;br /&gt;
  -- Thanks to Stefano Kowalke for the patch&lt;br /&gt;
- Fixed bug #18039 : JS Tokenizer crash when ] is last character in file&lt;br /&gt;
- Fixed bug #18047 : Incorrect handling of namespace aliases as constants&lt;br /&gt;
  -- Thanks to Dmitri Medvedev for the patch&lt;br /&gt;
- Fixed bug #18072 : Impossible to exclude path from processing when symlinked&lt;br /&gt;
- Fixed bug #18073 : Squiz.PHP.NonExecutableCode fault&lt;br /&gt;
- Fixed bug #18117 : PEAR coding standard: Method constructor not sniffed as a function&lt;br /&gt;
- Fixed bug #18135 : Generic FunctionCallArgumentSpacingSniff reports function declaration errors&lt;br /&gt;
- Fixed bug #18140 : Generic scope indent in exact mode: strange expected/found values for switch&lt;br /&gt;
- Fixed bug #18145 : Sniffs are not loaded for custom ruleset file&lt;br /&gt;
  -- Thanks to Scott McCammon for the patch&lt;br /&gt;
- Fixed bug #18152 : While and do-while with AbstractPatternSniff&lt;br /&gt;
- Fixed bug #18191 : Squiz.PHP.LowercasePHPFunctions does not work with new Date()&lt;br /&gt;
- Fixed bug #18193 : CodeSniffer doesn't reconize CR (\r) line endings
 </content:encoded>
 <dc:date>2011-01-14T06:08:17-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0RC1/">
 <title>PHP_CodeSniffer 1.3.0RC1</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0RC1/</link>
 <content:encoded>- Added exclude pattern support to ruleset.xml file so you can specify ignore patterns in a standard (request #17683)&lt;br /&gt;
  -- Use new exclude-pattern tags to include the ignore rules into your ruleset.xml file&lt;br /&gt;
  -- See CodeSniffer/Standards/PHPCS/ruleset.xml for an example&lt;br /&gt;
- Added new --encoding command line argument to specify the encoding of the files being checked&lt;br /&gt;
  -- When set to utf-8, stops the XML-based reports from double-encoding&lt;br /&gt;
  -- When set to something else, helps the XML-based reports encode to utf-8&lt;br /&gt;
  -- Default value is iso-8859-1 but can be changed with --config-set encoding [value]&lt;br /&gt;
- The report is no longer printed to screen when using the --report-file command line option (request #17467)&lt;br /&gt;
  -- If you want to print it to screen as well, use the -v command line argument&lt;br /&gt;
- The SVN and GIT blame reports now also show percentage of reported errors per author (request #17606)&lt;br /&gt;
  -- Thanks to Ben Selby for the patch&lt;br /&gt;
- Updated the SVN pre-commit hook to work with the new severity levels feature&lt;br /&gt;
- Generic SubversionPropertiesSniff now allows properties to have NULL values (request #17682)&lt;br /&gt;
  -- A null value indicates that the property should exist but the value should not be checked&lt;br /&gt;
- Generic UpperCaseConstantName Sniff now longer complains about the PHPUnit_MAIN_METHOD constant (request #17798)&lt;br /&gt;
- Squiz FileComment sniff now checks JS files as well as PHP files&lt;br /&gt;
- Squiz FunctionCommentSniff now supports namespaces in type hints&lt;br /&gt;
- Fixed a problem in Squiz OutputBufferingIndentSniff where block comments were reported as not indented&lt;br /&gt;
- Fixed bug #17092 : Problems with utf8_encode and htmlspecialchars with non-ascii chars&lt;br /&gt;
  -- Use the new --encoding=utf-8 command line argument if your files are utf-8 encoded&lt;br /&gt;
- Fixed bug #17629 : PHP_CodeSniffer_Tokens::$booleanOperators missing T_LOGICAL_XOR&lt;br /&gt;
  -- Thanks to Matthew Turland for the patch&lt;br /&gt;
- Fixed bug #17699 : Fatal error generating code coverage with PHPUnit 5.3.0RC1&lt;br /&gt;
- Fixed bug #17718 : Namespace 'use' statement: used global class name is recognized as constant&lt;br /&gt;
- Fixed bug #17734 : Generic SubversionPropertiesSniff complains on non SVN files&lt;br /&gt;
- Fixed bug #17742 : EmbeddedPhpSniff reacts negatively to file without closing php tag&lt;br /&gt;
- Fixed bug #17823 : Notice: Please no longer include PHPUnit/Framework.php
 </content:encoded>
 <dc:date>2010-09-03T01:15:35-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0a1/">
 <title>PHP_CodeSniffer 1.3.0a1</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.3.0a1/</link>
 <content:encoded>- All CodingStandard.php files have been replaced by ruleset.xml files&lt;br /&gt;
  -- Custom standards will need to be converted over to this new format to continue working&lt;br /&gt;
- You can specify a path to your own custom ruleset.xml file by using the --standard command line arg&lt;br /&gt;
  -- e.g., phpcs --standard=/path/to/my/ruleset.xml&lt;br /&gt;
- Added a new report type --report=gitblame to show how many errors and warnings were committed by each author&lt;br /&gt;
  -- Has the same functionality as the svnblame report&lt;br /&gt;
  -- Thanks to Ben Selby for the patch&lt;br /&gt;
- A new token type T_DOLLAR has been added to allow you to sniff for variable variables (feature request #17095)&lt;br /&gt;
  -- Thanks to Ian Young for the patch&lt;br /&gt;
- JS tokenizer now supports T_POWER (^) and T_MOD_EQUAL (%=) tokens (feature request #17441)&lt;br /&gt;
- If you have PHP_Timer installed, you'll now get a time/memory summary at the end of a script run&lt;br /&gt;
  -- Only happens when printing reports that are designed to be read on the command line&lt;br /&gt;
- Added Generic DeprecatedFunctionsSniff to warn about the use of deprecated functions (feature request #16694)&lt;br /&gt;
  -- Thanks to Sebastian Bergmann for the patch&lt;br /&gt;
- Added Squiz LogicalOperatorSniff to ensure that logical operators are surrounded by single spaces&lt;br /&gt;
- Added MySource ChannelExceptionSniff to ensure action files only throw ChannelException&lt;br /&gt;
- Added new method getClassProperties() for sniffs to use to determine if a class is abstract and/or final&lt;br /&gt;
  -- Thanks to Christian Kaps for the patch&lt;br /&gt;
- Generic UpperCaseConstantSniff no longer throws errors about namespaces&lt;br /&gt;
  -- Thanks to Christian Kaps for the patch&lt;br /&gt;
- Squiz OperatorBracketSniff now correctly checks value assignmnets in arrays&lt;br /&gt;
- Squiz LongConditionClosingCommentSniff now requires a comment for long CASE statements that use curly braces&lt;br /&gt;
- Squiz LongConditionClosingCommentSniff now requires an exact comment match on the brace&lt;br /&gt;
- MySource IncludeSystemSniff now ignores DOMDocument usage&lt;br /&gt;
- MySource IncludeSystemSniff no longer requires inclusion of systems that are being implemented&lt;br /&gt;
- Removed found and expected messages from Squiz ConcatenationSpacingSniff because they were messy and not helpful&lt;br /&gt;
- Fixed a problem where Generic CodeAnalysisSniff could show warnings if checking multi-line strings&lt;br /&gt;
- Fixed error messages in Squiz ArrayDeclarationSniff reporting incorrect number of found and expected spaces&lt;br /&gt;
- Fixed bug #17048 : False positive in Squiz_WhiteSpace_ScopeKeywordSpacingSniff&lt;br /&gt;
- Fixed bug #17054 : phpcs more strict than PEAR CS regarding function parameter spacing&lt;br /&gt;
- Fixed bug #17096 : Notice: Undefined index: scope_condition in ScopeClosingBraceSniff.php&lt;br /&gt;
  -- Moved PEAR.Functions.FunctionCallArgumentSpacing to Generic.Functions.FunctionCallArgumentSpacing&lt;br /&gt;
- Fixed bug #17144 : Deprecated: Function eregi() is deprecated&lt;br /&gt;
- Fixed bug #17236 : PHP Warning due to token_get_all() in DoubleQuoteUsageSniff&lt;br /&gt;
- Fixed bug #17243 : Alternate Switch Syntax causes endless loop of Notices in SwitchDeclaration&lt;br /&gt;
- Fixed bug #17313 : Bug with switch case struture&lt;br /&gt;
- Fixed bug #17331 : Possible parse error: interfaces may not include member vars&lt;br /&gt;
- Fixed bug #17337 : CSS tokenizer fails on quotes urls&lt;br /&gt;
- Fixed bug #17420 : Uncaught exception when comment before function brace&lt;br /&gt;
- Fixed bug #17503 : closures formatting is not supported
 </content:encoded>
 <dc:date>2010-07-15T05:04:50-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.2/">
 <title>PHP_CodeSniffer 1.2.2</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.2.2/</link>
 <content:encoded>- The core PHP_CodeSniffer_File methods now understand the concept of closures (feature request #16866)&lt;br /&gt;
  -- Thanks to Christian Kaps for the sample code&lt;br /&gt;
- Sniffs can now specify violation codes for each error and warning they add&lt;br /&gt;
  -- Future versions will allow you to override messages and severities using these codes&lt;br /&gt;
  -- Specifying a code is optional, but will be required if you wish to support overriding&lt;br /&gt;
- All reports have been broken into separate classes&lt;br /&gt;
  -- Command line usage and report output remains the same&lt;br /&gt;
  -- Thanks to Gabriele Santini for the patch&lt;br /&gt;
- Added an interactive mode that can be enabled using the -a command line argument&lt;br /&gt;
  -- Scans files and stops when it finds a file with errors&lt;br /&gt;
  -- Waits for user input to recheck the file (hopefully you fixed the errors) or skip the file&lt;br /&gt;
  -- Useful for very large code bases where full rechecks take a while&lt;br /&gt;
- The reports now show the correct number of errors and warnings found&lt;br /&gt;
- The isCamelCaps method now allows numbers in class names&lt;br /&gt;
- The JS tokenizer now correctly identifies boolean and bitwise AND and OR tokens&lt;br /&gt;
- The JS tokenzier now correctly identifies regular expressions used in conditions&lt;br /&gt;
- PEAR ValidFunctionNameSniff now ignores closures&lt;br /&gt;
- Squiz standard now uses the PEAR setting of 85 chars for LineLengthSniff&lt;br /&gt;
- Squiz ControlStructureSpacingSniff now ensure there are no spaces around parentheses&lt;br /&gt;
- Squiz LongConditionClosingCommentSniff now checks for comments at the end of try/catch statements&lt;br /&gt;
- Squiz LongConditionClosingCommentSniff now checks validity of comments for short structures if they exist&lt;br /&gt;
- Squiz IncrementDecrementUsageSniff now has better checking to ensure it only looks at simple variable assignments&lt;br /&gt;
- Squiz PostStatementCommentSniff no longer throws errors for end function comments&lt;br /&gt;
- Squiz InlineCommentSniff no longer throws errors for end function comments&lt;br /&gt;
- Squiz OperatorBracketSniff now allows simple arithmetic operations in SWITCH conditions&lt;br /&gt;
- Squiz ValidFunctionNameSniff now ignores closures&lt;br /&gt;
- Squiz MethodScopeSniff now ignores closures&lt;br /&gt;
- Squiz ClosingDeclarationCommentSniff now ignores closures&lt;br /&gt;
- Squiz GlobalFunctionSniff now ignores closures&lt;br /&gt;
- Squiz DisallowComparisonAssignmentSniff now ignores the assigning of arrays&lt;br /&gt;
- Squiz DisallowObjectStringIndexSniff now allows indexes that contain dots and reserved words&lt;br /&gt;
- Squiz standard now throws nesting level and cyclomatic complexity errors at much higher levels&lt;br /&gt;
- Squiz CommentedOutCodeSniff now ignores common comment framing chacacters&lt;br /&gt;
- Squiz ClassCommentSniff now ensures the open comment tag is the only content on the first line&lt;br /&gt;
- Squiz FileCommentSniff now ensures the open comment tag is the only content on the first line&lt;br /&gt;
- Squiz FunctionCommentSniff now ensures the open comment tag is the only content on the first line&lt;br /&gt;
- Squiz VariableCommentSniff now ensures the open comment tag is the only content on the first line&lt;br /&gt;
- Squiz NonExecutableCodeSniff now warns about empty return statements that are not required&lt;br /&gt;
- Removed ForbiddenStylesSniff from Squiz standard&lt;br /&gt;
  -- It is now in in the MySource standard as BrowserSpecificStylesSniff&lt;br /&gt;
  -- New BrowserSpecificStylesSniff ignores files with browser-specific suffixes&lt;br /&gt;
- MySource IncludeSystemSniff no longer throws errors when extending the Exception class&lt;br /&gt;
- MySource IncludeSystemSniff no longer throws errors for the abstract widget class&lt;br /&gt;
- MySource IncludeSystemSniff and UnusedSystemSniff now allow includes inside IF statements&lt;br /&gt;
- MySource IncludeSystemSniff no longer throws errors for included widgets inside methods&lt;br /&gt;
- MySource GetRequestDataSniff now throws errors for using $_FILES&lt;br /&gt;
- MySource CreateWidgetTypeCallbackSniff now allows return statements in nested functions&lt;br /&gt;
- MySource DisallowSelfActionsSniff now ignores abstract classes&lt;br /&gt;
- Fixed a problem with the SVN pre-commit hook for PHP versions without vertical whitespace regex support&lt;br /&gt;
- Fixed bug #16740 : False positives for heredoc strings and unused parameter sniff&lt;br /&gt;
- Fixed bug #16794 : ValidLogicalOperatorsSniff doesn't report operators not in lowercase&lt;br /&gt;
- Fixed bug #16804 : Report filename is shortened too much&lt;br /&gt;
- Fixed bug #16821 : Bug in Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff&lt;br /&gt;
  -- Thanks to Jaroslav Hanslík for the patch&lt;br /&gt;
- Fixed bug #16836 : Notice raised when using semicolon to open case&lt;br /&gt;
- Fixed bug #16855 : Generic standard sniffs incorrectly for define() method&lt;br /&gt;
- Fixed bug #16865 : Two bugs in Squiz_Sniffs_WhiteSpace_OperatorSpacingSniff&lt;br /&gt;
  -- Thanks to Jaroslav Hanslík for the patch&lt;br /&gt;
- Fixed bug #16902 : Inline If Declaration bug&lt;br /&gt;
- Fixed bug #16960 : False positive for late static binding in Squiz/ScopeKeywordSpacingSniff&lt;br /&gt;
  -- Thanks to Jakub Tománek for the patch&lt;br /&gt;
- Fixed bug #16976 : The phpcs attempts to process symbolic links that don't resolve to files&lt;br /&gt;
- Fixed bug #17017 : Including one file in the files sniffed alters errors reported for another file
 </content:encoded>
 <dc:date>2010-01-27T04:53:12-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.1/">
 <title>PHP_CodeSniffer 1.2.1</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.2.1/</link>
 <content:encoded>- Added a new report type --report=svnblame to show how many errors and warnings were committed by each author&lt;br /&gt;
  -- Also shows the percentage of their code that are errors and warnings&lt;br /&gt;
  -- Requires you to have the SVN command in your path&lt;br /&gt;
  -- Make sure SVN is storing usernames and passwords (if required) or you will need to enter them for each file&lt;br /&gt;
  -- You can also use the -s command line argument to see the different types of errors authors are committing&lt;br /&gt;
  -- You can use the -v command line argument to see all authors, even if they have no errors or warnings&lt;br /&gt;
- Added a new command line argument --report-width to allow you to set the column width of screen reports&lt;br /&gt;
  -- Reports wont accept values less than 70 or else they get too small&lt;br /&gt;
  -- Can also be set via a config var: phpcs --config-set report_width 100&lt;br /&gt;
- You can now get PHP_CodeSniffer to ignore a whole file by adding @codingStandardsIgnoreFile in the content&lt;br /&gt;
  -- If you put it in the first two lines the file wont even be tokenized, so it will be much quicker&lt;br /&gt;
- Reports now print their file lists in alphabetical order&lt;br /&gt;
- PEAR FunctionDeclarationSniff now reports error for incorrect closing bracket placement in multi-line definitions&lt;br /&gt;
- Added Generic CallTimePassByRefenceSniff to prohibit the passing of variables into functions by reference&lt;br /&gt;
  -- Thanks to Florian Grandel for the contribution&lt;br /&gt;
- Added Squiz DisallowComparisonAssignmentSniff to ban the assignment of comparison values to a variable&lt;br /&gt;
- Added Squiz DuplicateStyleDefinitionSniff to check for duplicate CSS styles in a single class block&lt;br /&gt;
- Squiz ArrayDeclarationSniff no longer checks the case of array indexes because that is not its job&lt;br /&gt;
- Squiz PostStatementCommentSniff now allows end comments for class member functions&lt;br /&gt;
- Squiz InlineCommentSniff now supports the checking of JS files&lt;br /&gt;
- MySource CreateWidgetTypeCallbackSniff now allows the callback to be passed to another function&lt;br /&gt;
- MySource CreateWidgetTypeCallbackSniff now correctly ignores callbacks used inside conditions&lt;br /&gt;
- Generic MultipleStatementAlignmentSniff now enforces a single space before equals sign if max padding is reached&lt;br /&gt;
- Fixed a problem in the JS tokenizer where regular expressions containing \// were not converted correctly&lt;br /&gt;
- Fixed a problem tokenizing CSS files where multiple ID targets on a line would look like comments&lt;br /&gt;
- Fixed a problem tokenizing CSS files where class names containing a colon looked like style definitions&lt;br /&gt;
- Fixed a problem tokenizing CSS files when style statements had empty url() calls&lt;br /&gt;
- Fixed a problem tokenizing CSS colours with the letter E in first half of the code&lt;br /&gt;
- Squiz ColonSpacingSniff now ensures it is only checking style definitions in CSS files and not class names&lt;br /&gt;
- Squiz DisallowComparisonAssignmentSniff no longer reports errors when assigning the return value of a function&lt;br /&gt;
- CSS tokenizer now correctly supports multi-line comments&lt;br /&gt;
- When only the case of var names differ for function comments, the error now indicates the case is different&lt;br /&gt;
- Fixed an issue with Generic UnnecessaryStringConcatSniff where it incorrectly suggested removing a concat&lt;br /&gt;
- Fixed bug #16530 : ScopeIndentSniff reports false positive&lt;br /&gt;
- Fixed bug #16533 : Duplicate errors and warnings&lt;br /&gt;
- Fixed bug #16563 : Check file extensions problem in phpcs-svn-pre-commit&lt;br /&gt;
  -- Thanks to Kaijung Chen for the patch&lt;br /&gt;
- Fixed bug #16592 : Object operator indentation incorrect when first operator is on a new line&lt;br /&gt;
- Fixed bug #16641 : Notice output&lt;br /&gt;
- Fixed bug #16682 : Squiz_Sniffs_Strings_DoubleQuoteUsageSniff reports string &quot;\0&quot; as invalid&lt;br /&gt;
- Fixed bug #16683 : Typing error in PHP_CodeSniffer_CommentParser_AbstractParser&lt;br /&gt;
- Fixed bug #16684 : Bug in Squiz_Sniffs_PHP_NonExecutableCodeSniff&lt;br /&gt;
- Fixed bug #16692 : Spaces in paths in Squiz_Sniffs_Debug_JavaScriptLintSniff&lt;br /&gt;
  -- Thanks to Jaroslav Hanslík for the patch&lt;br /&gt;
- Fixed bug #16696 : Spelling error in MultiLineConditionSniff&lt;br /&gt;
- Fixed bug #16697 : MultiLineConditionSniff incorrect result with inline IF&lt;br /&gt;
- Fixed bug #16698 : Notice in JavaScript Tokenizer&lt;br /&gt;
- Fixed bug #16736 : Multi-files sniffs aren't processed when FILE is a single directory&lt;br /&gt;
  -- Thanks to Alexey Shein for the patch&lt;br /&gt;
- Fixed bug #16792 : Bug in Generic_Sniffs_PHP_ForbiddenFunctionsSniff
 </content:encoded>
 <dc:date>2009-11-17T04:49:33-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.0/">
 <title>PHP_CodeSniffer 1.2.0</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.2.0/</link>
 <content:encoded>- Installed standards are now favoured over custom standards when using the cmd line arg with relative paths&lt;br /&gt;
- Unit tests now use a lot less memory while running&lt;br /&gt;
- Squiz standard now uses Generic EmptyStatementSniff but throws errors instead of warnings&lt;br /&gt;
- Squiz standard now uses Generic UnusedFunctionParameterSniff&lt;br /&gt;
- Removed unused ValidArrayIndexNameSniff from the Squiz standard&lt;br /&gt;
- Fixed bug #16424 : SubversionPropertiesSniff print PHP Warning&lt;br /&gt;
- Fixed bug #16450 : Constant PHP_CODESNIFFER_VERBOSITY already defined (unit tests)&lt;br /&gt;
- Fixed bug #16453 : function declaration long line splitted error&lt;br /&gt;
- Fixed bug #16482 : phpcs-svn-pre-commit ignores extensions parameter
 </content:encoded>
 <dc:date>2009-08-17T05:31:53-05:00</dc:date>
</item>
<item rdf:about="http://pear.php.net/package/PHP_CodeSniffer/download/1.2.0RC3/">
 <title>PHP_CodeSniffer 1.2.0RC3</title>
 <link>http://pear.php.net/package/PHP_CodeSniffer/download/1.2.0RC3/</link>
 <content:encoded>- You can now use @codingStandardsIgnoreStart and @...End comments to suppress error messages (feature request #14002)&lt;br /&gt;
- A warning is now included for files without any code when short_open_tag is set to Off (feature request #12952)&lt;br /&gt;
- You can now use relative paths to your custom standards with the --standard cmd line arg (feature request #14967)&lt;br /&gt;
- You can now override magic methods and functions in PEAR ValidFunctionNameSniff (feature request #15830)&lt;br /&gt;
- MySource IncludeSystemSniff now recognises widget action classes&lt;br /&gt;
- MySource IncludeSystemSniff now knows about unit test classes and changes rules accordingly
 </content:encoded>
 <dc:date>2009-07-07T03:58:32-05:00</dc:date>
</item>

</rdf:RDF>
