Skip to content

Tags: shyim/BetterReflection

Tags

6.6.0

Toggle 6.6.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.6.0](https://github.com/Roave/BetterReflecti…

…on/milestone/89)

Feature release (minor)

### 6.6.0

- Total issues resolved: **0**
- Total pull requests resolved: **5**
- Total contributors: **2**

#### enhancement

 - [1325: Fixed `Expecting E&Roave#95;WARNING and E&Roave#95;USER&Roave#95;WARNING is deprecated and will no longer be possible in PHPUnit 10.`](Roave#1325) thanks to @kukulich
 - [1320: 100 % mutation score](Roave#1320) thanks to @kukulich

#### dependencies,enhancement

 - [1322: Bump vimeo/psalm from 5.1.0 to 5.6.0](Roave#1322) thanks to @kukulich

#### renovate

 - [1319: Update dependency doctrine/coding-standard to v11](Roave#1319) thanks to @renovate[bot]
 - [1317: Lock file maintenance](Roave#1317) thanks to @renovate[bot]

6.5.0

Toggle 6.5.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.5.0](https://github.com/Roave/BetterReflecti…

…on/milestone/86)

Feature release (minor)

### 6.5.0

- Total issues resolved: **0**
- Total pull requests resolved: **9**
- Total contributors: **4**

#### dependencies

 - [1318: Bump jetbrains/phpstorm-stubs from 2022.2 to 2022.3](Roave#1318) thanks to @kukulich

#### dependencies,enhancement

 - [1316: Removed dead PHPUnit `@requires`](Roave#1316) thanks to @kukulich
 - [1315: Dropped PHP 8.0 support](Roave#1315) thanks to @kukulich

#### enhancement,renovate

 - [1314: Update dependency vimeo/psalm to v5](Roave#1314) thanks to @renovate[bot]

#### bug

 - [1313: Merge release 6.4.1 into 6.5.x](Roave#1313) thanks to @github-actions[bot]

#### dependencies,enhancement,renovate

 - [1308: Lock file maintenance](Roave#1308) thanks to @renovate[bot]

#### renovate

 - [1307: Update dependency roave/backward-compatibility-check to v8](Roave#1307) thanks to @renovate[bot]

#### enhancement

 - [1306: Configure config.platform.php in composer.json](Roave#1306) thanks to @herndlm

#### dependencies,renovate

 - [1305: Lock file maintenance](Roave#1305) thanks to @renovate[bot]

6.4.1

Toggle 6.4.1's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.4.1](https://github.com/Roave/BetterReflecti…

…on/milestone/85)

6.4.x bugfix release (patch)

### 6.4.1

- Total issues resolved: **1**
- Total pull requests resolved: **1**
- Total contributors: **2**

#### bug

 - [1312: Fixed adapter `ReflectionMethod::getStartLine()` and `getEndLine()` when code location is missing](Roave#1312) thanks to @kukulich
 - [1309: CodeLocationMissing is thrown, also unable to compile initializer](Roave#1309) thanks to @DanielBadura

6.4.0

Toggle 6.4.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.4.0](https://github.com/Roave/BetterReflecti…

…on/milestone/84)

Feature release (minor)

### 6.4.0

- Total issues resolved: **1**
- Total pull requests resolved: **5**
- Total contributors: **4**

#### renovate

 - [1302: Update dependency roave/backward-compatibility-check to v7](Roave#1302) thanks to @renovate[bot]
 - [1301: Roll back ramsey/composer-install action to 2.1.0](Roave#1301) thanks to @renovate[bot]

#### dependencies,enhancement

 - [1299: Configure Renovate](Roave#1299) thanks to @renovate[bot]

#### enhancement

 - [1298: Optimized `ReflectionClass::getName()` for anonymous classes](Roave#1298) thanks to @kukulich and @lulco

#### dependencies,php

 - [1292: Bump roave/infection-static-analysis-plugin from 1.24.0 to 1.25.0](Roave#1292) thanks to @dependabot[bot]

6.3.0

Toggle 6.3.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.3.0](https://github.com/Roave/BetterReflecti…

…on/milestone/82)

Feature release (minor)

### 6.3.0

- Total issues resolved: **2**
- Total pull requests resolved: **4**
- Total contributors: **4**

#### bug,reflection compatibility

 - [1286: Fixed reflection compatibility when method/property/constant/case name is empty](Roave#1286) thanks to @kukulich and @ondrejmirtes

#### enhancement

 - [1285: `Reflection*::getStartLine()/getEndLine()/getStartColumn()/getEndColumn()` throws `\Roave\BetterReflection\Reflection\Exception\CodeLocationMissing` instead of `\RuntimeException`](Roave#1285) thanks to @kukulich and @Ocramius
 - [1284: Kill the last mutant in `ReflectionClass::getProperties()`](Roave#1284) thanks to @kukulich

#### dependencies,php

 - [1274: Bump vimeo/psalm from 4.27.0 to 4.28.0](Roave#1274) thanks to @dependabot[bot]

6.2.0

Toggle 6.2.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.2.0](https://github.com/Roave/BetterReflecti…

…on/milestone/80)

Feature release (minor)

### 6.2.0

- Total issues resolved: **0**
- Total pull requests resolved: **3**
- Total contributors: **2**

#### enhancement

 - [1273: Fixed Covered Code MSI percentage](Roave#1273) thanks to @kukulich

#### dependencies,php

 - [1272: Bump phpstan/phpstan from 1.8.7 to 1.8.8](Roave#1272) thanks to @dependabot[bot]
 - [1271: Bump phpstan/phpstan from 1.8.6 to 1.8.7](Roave#1271) thanks to @dependabot[bot]

6.1.0

Toggle 6.1.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.1.0](https://github.com/Roave/BetterReflecti…

…on/milestone/77)

Feature release (minor)

### 6.1.0

- Total issues resolved: **1**
- Total pull requests resolved: **7**
- Total contributors: **4**

#### enhancement

 - [1270: Optimisation of getting methods, properties and constants from interfaces](Roave#1270) thanks to @kukulich
 - [1266: Optimisations of getting methods, properties and constants in `ReflectionClass`](Roave#1266) thanks to @kukulich

#### bug

 - [1269: Fixed detection of interface circular reference](Roave#1269) thanks to @kukulich and @ondrejmirtes
 - [1268: Circular interface failing test](Roave#1268) thanks to @ondrejmirtes
 - [1265: `Stringable` interface does not implement `Stringable`](Roave#1265) thanks to @herndlm

#### dependencies,php

 - [1263: Bump symfony/console from 6.0.12 to 6.0.13](Roave#1263) thanks to @dependabot[bot]
 - [1262: Bump symfony/filesystem from 6.0.12 to 6.0.13](Roave#1262) thanks to @dependabot[bot]

6.0.0

Toggle 6.0.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [6.0.0](https://github.com/Roave/BetterReflecti…

…on/milestone/44)

Backwards incompatible release (major)

Notable breakages:

```
[BC] CHANGED: Roave\BetterReflection\Reflection\ReflectionUnionType#getTypes() now returns a non-empty-list<ReflectionNamedType|ReflectionIntersectionType>, where it previously returned list<ReflectionNamedType>
[BC] CHANGED: Roave\BetterReflection\SourceLocator\Type\StringSourceLocator::__construct() parameter type changed from string to a non-contravariant non-empty-stringallowsNull
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\ClassLoaderMethod\Exception\SignatureCheckFailed has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\ClassLoaderMethod\FileCacheLoader has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\ClassLoaderMethod\LoaderMethodInterface has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\ClassLoaderMethod\EvalLoader has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\Exception\FailedToLoadClass has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\Exception\ClassAlreadyRegistered has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\Exception\ClassAlreadyLoaded has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\ClassPrinter\ClassPrinterInterface has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\ClassPrinter\PhpParserPrinter has been deleted
[BC] REMOVED: Class Roave\BetterReflection\Util\Autoload\ClassLoader has been deleted
[BC] REMOVED: Method Roave\BetterReflection\Reflection\Adapter\ReflectionProperty#isAccessible() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionEnum#__construct() was removed
[BC] CHANGED: Method __construct() of class Roave\BetterReflection\Reflection\ReflectionEnum visibility reduced from protected to private
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionClass#__construct() was removed
[BC] CHANGED: Roave\BetterReflection\Reflection\ReflectionClass#__construct() was marked "@internal"
[BC] REMOVED: Class Roave\BetterReflection\SourceLocator\Exception\EmptyPhpSourceCode has been deleted
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$reflector was removed
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$owner was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionUnionType#__construct() was removed
[BC] CHANGED: Property Roave\BetterReflection\Reflection\ReflectionType#$reflector visibility reduced from protected to private
[BC] CHANGED: Property Roave\BetterReflection\Reflection\ReflectionType#$owner visibility reduced from protected to private
[BC] CHANGED: Roave\BetterReflection\Reflection\ReflectionUnionType#__construct() was marked "@internal"
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$reflector was removed
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$owner was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionNamedType#__construct() was removed
[BC] CHANGED: Property Roave\BetterReflection\Reflection\ReflectionType#$reflector visibility reduced from protected to private
[BC] CHANGED: Property Roave\BetterReflection\Reflection\ReflectionType#$owner visibility reduced from protected to private
[BC] CHANGED: Roave\BetterReflection\Reflection\ReflectionNamedType#__construct() was marked "@internal"
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$reflector was removed
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$owner was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionType#__construct() was removed
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$reflector was removed
[BC] REMOVED: Property Roave\BetterReflection\Reflection\ReflectionType#$owner was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionIntersectionType#__construct() was removed
[BC] CHANGED: Property Roave\BetterReflection\Reflection\ReflectionType#$reflector visibility reduced from protected to private
[BC] CHANGED: Property Roave\BetterReflection\Reflection\ReflectionType#$owner visibility reduced from protected to private
[BC] CHANGED: Roave\BetterReflection\Reflection\ReflectionIntersectionType#__construct() was marked "@internal"
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionEnum#__construct() was removed
[BC] CHANGED: Method __construct() of class Roave\BetterReflection\Reflection\ReflectionEnum visibility reduced from protected to private
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionClass#__construct() was removed
[BC] CHANGED: Roave\BetterReflection\Reflection\ReflectionClass#__construct() was marked "@internal"
[BC] CHANGED: The parameter $betterReflectionType of Roave\BetterReflection\Reflection\Adapter\ReflectionType::fromTypeOrNull() changed from Roave\BetterReflection\Reflection\ReflectionNamedType|Roave\BetterReflection\Reflection\ReflectionUnionType|Roave\BetterReflection\Reflection\ReflectionIntersectionType|null to Roave\BetterReflection\Reflection\ReflectionUnionType|Roave\BetterReflection\Reflection\ReflectionNamedType|Roave\BetterReflection\Reflection\ReflectionIntersectionType|null
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionParameter#isArray() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionParameter#isCallable() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionParameter#getClass() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionClass#getDeclaringNamespaceAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionObject#getDeclaringNamespaceAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionClass#getDeclaringNamespaceAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionParameter#getAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionEnumCase#getAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionConstant#getAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionProperty#getAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionProperty#getPositionInAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionProperty#__clone() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionClassConstant#getAst() was removed
[BC] REMOVED: Method Roave\BetterReflection\Reflection\ReflectionClassConstant#getPositionInAst() was removed
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionFunctionAbstract#getNamespaceName() changed from string to the non-covariant string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionFunctionAbstract#getNamespaceName() changed from string to string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionClass#getNamespaceName() changed from string to the non-covariant string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionClass#getNamespaceName() changed from string to string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionObject#getNamespaceName() changed from string to the non-covariant string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionObject#getNamespaceName() changed from string to string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionMethod#getNamespaceName() changed from string to the non-covariant string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionMethod#getNamespaceName() changed from string to string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionConstant#getNamespaceName() changed from string to the non-covariant string|null
[BC] CHANGED: The return type of Roave\BetterReflection\Reflection\ReflectionConstant#getNamespaceName() change
```

### 6.0.0

- Total issues resolved: **7**
- Total pull requests resolved: **49**
- Total contributors: **6**

#### enhancement

 - [1258: Fixed return type of `ReflectionClass::getDefaultProperties()`](Roave#1258) thanks to @kukulich
 - [1256: Detection of circular references in constant, method and property getters](Roave#1256) thanks to @herndlm
 - [1252: Optimise interface traversion in `ReflectionClass`](Roave#1252) thanks to @herndlm
 - [1248: Increased minimum covered code mutations core to 100 %](Roave#1248) thanks to @kukulich
 - [1247: Interface can have only public properties](Roave#1247) thanks to @kukulich
 - [1243: Some improvements for `ReflectionClass`](Roave#1243) thanks to @kukulich
 - [1242: Detection of trait use circular references](Roave#1242) thanks to @herndlm
 - [1241: Detection of interface extends circular references](Roave#1241) thanks to @herndlm
 - [1240: Detection of circular references](Roave#1240) thanks to @kukulich and @herndlm
 - [1238: Improved code coverage and mutation score](Roave#1238) thanks to @kukulich
 - [1236: Improved return type of `Reflection*::getModifiers()`](Roave#1236) thanks to @kukulich
 - [1234: Method names, property names etc could be only `non-empty-string`](Roave#1234) thanks to @kukulich
 - [1225: Fixed mutation testing badge](Roave#1225) thanks to @kukulich
 - [1223: Added methods to get value expression](Roave#1223) thanks to @kukulich
 - [1222: Deprecate converting initializer expressions to runtime values?](Roave#1222) thanks to @ondrejmirtes
 - [1221: Improved mutation score](Roave#1221) thanks to @kukulich
 - [1220: Improved mutation score](Roave#1220) thanks to @kukulich
 - [1215: CS: `RequireExplicitAssertion` with `enableIntegerRanges=true` and `enableAdvancedStringTypes=true`](Roave#1215) thanks to @kukulich
 - [1207: Merge release 5.11.0 into 6.0.x](Roave#1207) thanks to @github-actions[bot]
 - [1199: Merge release 5.10.0 into 6.0.x](Roave#1199) thanks to @github-actions[bot]
 - [1180: Merge release 5.9.0 into 6.0.x](Roave#1180) thanks to @github-actions[bot]
 - [1170: Merge release 5.8.0 into 6.0.x](Roave#1170) thanks to @github-actions[bot]
 - [1153: Merge release 5.7.0 into 6.0.x](Roave#1153) thanks to @github-actions[bot]

#### BC break,enhancement

 - [1257: Less memory usage in `ReflectionMethod::withCurrentClass()`](Roave#1257) thanks to @kukulich
 - [1255: Mark `ReflectionClass::getMethods()` compatible with other similar getters](Roave#1255) thanks to @kukulich
 - [1245: Removed support for PHP4 style constructors](Roave#1245) thanks to @kukulich
 - [1235: Filter parameter for methods, properties and constants is always `int-mask-of`](Roave#1235) thanks to @kukulich
 - [1233: `ReflectionClass::getMethod()` returns null when method does not exist](Roave#1233) thanks to @kukulich
 - [1231: `ReflectionClass::getConstant()`, `getConstants()` and `getImmediateConstants()` more consistent with methods and properties methods](Roave#1231) thanks to @kukulich
 - [1230: Default PHP parser is not memoizing to prevent memory leaks](Roave#1230) thanks to @kukulich
 - [1229: Removed `ReflectionClass::getAst()` to prevent memory leaks](Roave#1229) thanks to @kukulich and @ondrejmirtes
 - [1226: Removed `ReflectionMethod::getAst()`, `getBodyAst()`, `getBodyCode()` and `getReturnStatementsAst()` to prevent memory leaks](Roave#1226) thanks to @kukulich
 - [1224: `Reflection*::getDocComment()` returns null when no doc comment](Roave#1224) thanks to @kukulich
 - [1219: `Reflection*::getNamespaceName()` returns null when no namespace - namespace as empty string is implemented only in adapters](Roave#1219) thanks to @kukulich
 - [1218: Removed `ReflectionClassConstant::getAst()` to prevent memory leaks](Roave#1218) thanks to @kukulich and @ondrejmirtes
 - [1216: Removed `ReflectionProperty::getAst()` to prevent memory leaks](Roave#1216) thanks to @kukulich and @ondrejmirtes
 - [1214: Removed some node references to prevent memory leaks](Roave#1214) thanks to @kukulich
 - [1213: Removed `ReflectionParameter::getAst()` to prevent memory leaks](Roave#1213) thanks to @kukulich
 - [1209: `ReflectionParameter::getClass()`, `ReflectionParameter::isArray()` and `ReflectionParameter::isCallable()` implementations moved only to adapter](Roave#1209) thanks to @kukulich
 - [1198: PHP 8.2: Support for disjunctive normal form types ](Roave#1198) thanks to @kukulich
 - [1142: Removed deprecated `Util\Autoload`](Roave#1142) thanks to @kukulich
 - [1141: Removed useleses method `ReflectionProperty::isAccessible()` in adapter](Roave#1141) thanks to @kukulich
 - [1140: Reflection types cleanup](Roave#1140) thanks to @kukulich
 - [1139: `ReflectionEnum::&Roave#95;&Roave#95;construct()` can be private](Roave#1139) thanks to @kukulich
 - [1138: `StringSourceLocator` is forced to be built with a `non-empty-string`](Roave#1138) thanks to @kukulich and @Ocramius
 - [981: 6.0 cleanup](Roave#981) thanks to @kukulich

#### bug

 - [1251: Merge release 5.11.1 into 6.0.x](Roave#1251) thanks to @github-actions[bot]
 - [1246: Fixed `ReflectionNamedType::getClass()` for `self` defined in trait](Roave#1246) thanks to @kukulich

#### bug,reflection compatibility

 - [1237: Fixed adapters compatibility](Roave#1237) thanks to @kukulich

#### blocked,enhancement

 - [1232: Wait for phpstan to integrate/test `6.0.x` before releasing `6.0.0`](Roave#1232) thanks to @Ocramius

#### dependencies,php

 - [1228: Bump slevomat/coding-standard from 8.5.0 to 8.5.1](Roave#1228) thanks to @dependabot[bot]
 - [1227: Bump phpstan/phpstan from 1.8.5 to 1.8.6](Roave#1227) thanks to @dependabot[bot]

#### BC break

 - [1210: Removed `ReflectionClass::getDeclaringNamespaceAst()` - we don't need to keep a reference to the namespace AST node](Roave#1210) thanks to @kukulich

5.11.1

Toggle 5.11.1's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [5.11.1](https://github.com/Roave/BetterReflect…

…ion/milestone/73)

5.11.x bugfix release (patch)

### 5.11.1

- Total issues resolved: **0**
- Total pull requests resolved: **1**
- Total contributors: **1**

#### bug

 - [1250: PHP 8.2: Property in readonly class is readonly](Roave#1250) thanks to @kukulich

5.11.0

Toggle 5.11.0's commit message

Verified

This tag was signed with the committer’s verified signature.
Ocramius Marco Pivetta
### Release Notes for [5.11.0](https://github.com/Roave/BetterReflect…

…ion/milestone/72)

Feature release (minor)

### 5.11.0

- Total issues resolved: **0**
- Total pull requests resolved: **2**
- Total contributors: **1**

#### enhancement,reflection compatibility

 - [1205: PHP 8.2: Constants in traits](Roave#1205) thanks to @kukulich

#### dependencies,enhancement

 - [1191: Basic support for PHP 8.2](Roave#1191) thanks to @kukulich