1# Revision History 2 3## 7.0 4 5### 7.0.0 (2015-08-24) 6 7* Compatibility with PHP 7. Well timed, eh? 8 9#### Deprecations 10 11* The `Sabberworm\CSS\Value\String` class has been renamed to `Sabberworm\CSS\Value\CSSString`. 12 13### 7.0.1 (2015-12-25) 14 15* No more suppressed `E_NOTICE` 16* *No backwards-incompatible changes* 17* *No deprecations* 18 19### 7.0.2 (2016-02-11) 20 21* 150 time performance boost thanks to @[ossinkine](https://github.com/ossinkine) 22* *No backwards-incompatible changes* 23* *No deprecations* 24 25### 7.0.3 (2016-04-27) 26 27* Fixed parsing empty CSS when multibyte is off 28* *No backwards-incompatible changes* 29* *No deprecations* 30 31## 6.0 32 33### 6.0.0 (2014-07-03) 34 35* Format output using Sabberworm\CSS\OutputFormat 36* *No backwards-incompatible changes* 37 38#### Deprecations 39 40* The parse() method replaces __toString with an optional argument (instance of the OutputFormat class) 41 42### 6.0.1 (2015-08-24) 43 44* Remove some declarations in interfaces incompatible with PHP 5.3 (< 5.3.9) 45* *No deprecations* 46 47## 5.0 48 49### 5.0.0 (2013-03-20) 50 51* Correctly parse all known CSS 3 units (including Hz and kHz). 52* Output RGB colors in short (#aaa or #ababab) notation 53* Be case-insensitive when parsing identifiers. 54* *No deprecations* 55 56#### Backwards-incompatible changes 57 58* `Sabberworm\CSS\Value\Color`’s `__toString` method overrides `CSSList`’s to maybe return something other than `type(value, …)` (see above). 59 60### 5.0.1 (2013-03-20) 61 62* Internal cleanup 63* *No backwards-incompatible changes* 64* *No deprecations* 65 66### 5.0.2 (2013-03-21) 67 68* CHANGELOG.md file added to distribution 69* *No backwards-incompatible changes* 70* *No deprecations* 71 72### 5.0.3 (2013-03-21) 73 74* More size units recognized 75* *No backwards-incompatible changes* 76* *No deprecations* 77 78### 5.0.4 (2013-03-21) 79 80* Don’t output floats with locale-aware separator chars 81* *No backwards-incompatible changes* 82* *No deprecations* 83 84### 5.0.5 (2013-04-17) 85 86* Initial support for lenient parsing (setting this parser option will catch some exceptions internally and recover the parser’s state as neatly as possible). 87* *No backwards-incompatible changes* 88* *No deprecations* 89 90### 5.0.6 (2013-05-31) 91 92* Fix broken unit test 93* *No backwards-incompatible changes* 94* *No deprecations* 95 96### 5.0.7 (2013-08-04) 97 98* Fix broken decimal point output optimization 99* *No backwards-incompatible changes* 100* *No deprecations* 101 102### 5.0.8 (2013-08-15) 103 104* Make default settings’ multibyte parsing option dependent on whether or not the mbstring extension is actually installed. 105* *No backwards-incompatible changes* 106* *No deprecations* 107 108### 5.1.0 (2013-10-24) 109 110* Performance enhancements by Michael M Slusarz 111* More rescue entry points for lenient parsing (unexpected tokens between declaration blocks and unclosed comments) 112* *No backwards-incompatible changes* 113* *No deprecations* 114 115### 5.1.1 (2013-10-28) 116 117* Updated CHANGELOG.md to reflect changes since 5.0.4 118* *No backwards-incompatible changes* 119* *No deprecations* 120 121### 5.1.2 (2013-10-30) 122 123* Remove the use of consumeUntil in comment parsing. This makes it possible to parse comments such as `/** Perfectly valid **/` 124* Add fr relative size unit 125* Fix some issues with HHVM 126* *No backwards-incompatible changes* 127* *No deprecations* 128 129### 5.2.0 (2014-06-30) 130 131* Support removing a selector from a declaration block using `$oBlock->removeSelector($mSelector)` 132* Introduce a specialized exception (Sabberworm\CSS\Parsing\OuputException) for exceptions during output rendering 133 134* *No deprecations* 135 136#### Backwards-incompatible changes 137 138* Outputting a declaration block that has no selectors throws an OuputException instead of outputting an invalid ` {…}` into the CSS document. 139 140## 4.0 141 142### 4.0.0 (2013-03-19) 143 144* Support for more @-rules 145* Generic interface `Sabberworm\CSS\Property\AtRule`, implemented by all @-rule classes 146* *No deprecations* 147 148#### Backwards-incompatible changes 149 150* `Sabberworm\CSS\RuleSet\AtRule` renamed to `Sabberworm\CSS\RuleSet\AtRuleSet` 151* `Sabberworm\CSS\CSSList\MediaQuery` renamed to `Sabberworm\CSS\RuleSet\CSSList\AtRuleBlockList` with differing semantics and API (which also works for other block-list-based @-rules like `@supports`). 152 153## 3.0 154 155### 3.0.0 (2013-03-06) 156 157* Support for lenient parsing (on by default) 158* *No deprecations* 159 160#### Backwards-incompatible changes 161 162* All properties (like whether or not to use `mb_`-functions, which default charset to use and – new – whether or not to be forgiving when parsing) are now encapsulated in an instance of `Sabberworm\CSS\Settings` which can be passed as the second argument to `Sabberworm\CSS\Parser->__construct()`. 163* Specifying a charset as the second argument to `Sabberworm\CSS\Parser->__construct()` is no longer supported. Use `Sabberworm\CSS\Settings::create()->withDefaultCharset('some-charset')` instead. 164* Setting `Sabberworm\CSS\Parser->bUseMbFunctions` has no effect. Use `Sabberworm\CSS\Settings::create()->withMultibyteSupport(true/false)` instead. 165* `Sabberworm\CSS\Parser->parse()` may throw a `Sabberworm\CSS\Parsing\UnexpectedTokenException` when in strict parsing mode. 166 167## 2.0 168 169### 2.0.0 (2013-01-29) 170 171* Allow multiple rules of the same type per rule set 172 173#### Backwards-incompatible changes 174 175* `Sabberworm\CSS\RuleSet->getRules()` returns an index-based array instead of an associative array. Use `Sabberworm\CSS\RuleSet->getRulesAssoc()` (which eliminates duplicate rules and lets the later rule of the same name win). 176* `Sabberworm\CSS\RuleSet->removeRule()` works as it did before except when passed an instance of `Sabberworm\CSS\Rule\Rule`, in which case it would only remove the exact rule given instead of all the rules of the same type. To get the old behaviour, use `Sabberworm\CSS\RuleSet->removeRule($oRule->getRule()`; 177 178## 1.0 179 180Initial release of a stable public API. 181 182## 0.9 183 184Last version not to use PSR-0 project organization semantics. 185