tag:github.com,2008:https://github.com/phpDocumentor/Reflection/releasesRelease notes from Reflection2025-11-25T21:21:18Ztag:github.com,2008:Repository/6885787/6.4.42025-11-25T21:22:06Z6.4.4<p>Fix issue with self referenced constants.</p>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.4.3...6.4.4"><tt>6.4.3...6.4.4</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.4.32025-11-25T21:05:21Z6.4.3<h2>What's Changed</h2>
<ul>
<li>Fix class resolve in expression containing a constant fetch.</li>
<li>Bump phpdocumentor/type-resolver from 1.11.1 to 1.12.0 by <a class="user-mention notranslate" data-hovercard-type="organization" data-hovercard-url="/orgs/dependabot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/dependabot">@dependabot</a>[bot] in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3661915312" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/706" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/706/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/706">#706</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.4.2...6.4.3"><tt>6.4.2...6.4.3</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.4.22025-11-23T13:25:27Z6.4.2<h2>What's Changed</h2>
<p>Resolve issue with expressions where some default values were resolved incorrectly as FQSEN, now <code>null</code> will result in a <code>Null_</code> type and booleans will result in <code>True_</code> or <code>False_</code>. other values remain unchanged.</p>
<ul>
<li>Use type resolver to resolve types in expressions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3654654935" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/703" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/703/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/703">#703</a></li>
<li>Add support for php 8.5 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3606705214" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/695" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/695/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/695">#695</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.4.1...6.4.2"><tt>6.4.1...6.4.2</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.4.12025-11-12T21:51:34Z6.4.1<h2>What's Changed</h2>
<p>Thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bshaffer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bshaffer">@bshaffer</a> for reporting <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3618306002" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/697" data-hovercard-type="issue" data-hovercard-url="/phpDocumentor/Reflection/issues/697/hovercard" href="https://github.com/phpDocumentor/Reflection/issues/697">#697</a></p>
<ul>
<li>Fix allow zero as expression value. by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3618347797" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/698" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/698/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/698">#698</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.4.0...6.4.1"><tt>6.4.0...6.4.1</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.4.02025-11-12T20:49:27Z6.4.0<h2>What's Changed</h2>
<p>This version adds support for more complex expressions in method arguments. The expressions allow users of this library to extract type information from default values of arguments.</p>
<ul>
<li>Reworking expression strings into Expression objects by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mvriel/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mvriel">@mvriel</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1487521411" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/307" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/307/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/307">#307</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.3.0...6.4.0"><tt>6.3.0...6.4.0</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.3.02025-06-06T13:50:35Z6.3.0<h2>What's Changed</h2>
<p>This version adds support to detect virtual properties.</p>
<ul>
<li>Find references to property if virtual by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3124813907" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/672" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/672/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/672">#672</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.2.1...6.3.0"><tt>6.2.1...6.3.0</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.2.12025-05-30T18:46:05Z6.2.1<h2>What's Changed</h2>
<p>Version 6.2.0 contained a wrong named class for Asymmetric visibility. This version renames the class, which should be considered a backward compatibility break. But because the release is rather new I do accept this for a patch release.</p>
<ul>
<li>Rename Async to Asymmetric by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3103973265" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/670" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/670/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/670">#670</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.2.0...6.2.1"><tt>6.2.0...6.2.1</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.2.02025-05-30T18:43:26Z6.2.0<h2>What's Changed</h2>
<p>In this version we introduced support for asymmetric visibility and property hooks.</p>
<ul>
<li>Add asymmetric visibility support by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2997454767" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/663" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/663/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/663">#663</a></li>
<li>Add property hook support. by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3061152410" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/667" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/667/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/667">#667</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.1.0...6.2.0"><tt>6.1.0...6.2.0</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.1.02024-11-22T15:14:26Z6.1.0<h2>What's Changed</h2>
<p>Added support for php 8.4. This doesn't add any of the new features of php 8.4 but does allow our users to upgrade to php 8.4</p>
<ul>
<li>Enable php 8.4 to start building for 8.4 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2683475052" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/640" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/640/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/640">#640</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/6.0.0...6.1.0"><tt>6.0.0...6.1.0</tt></a></p>jaapiotag:github.com,2008:Repository/6885787/6.0.02024-05-23T19:56:06Z6.0.0<h2>6.0.0</h2>
<p>In this version we added support for <code>Attributes</code> and improved the way this project can be extended using <code>Reducers</code>. Added support for php 8.3 features and upgraded to version 5 of phpparser.</p>
<h3>Attributes</h3>
<p>In PHP8 attributes were added to the language. Attributes are great at runtime but kinda hurdle to take in reflection of the code base as we do not load any classes into our runtime. We are just processing your code as it was plain text. This means that attribute classes are not available as classes, but also a lot of information is gone that you would normally have when loading attributes.</p>
<p>In this version we added a way to support reflection of attributes describing the format of the defined attributes and their call parameters. <code>CallParameters</code> have an optional name if named parameters are used in the usage of an attribute. This should give our users enough information to get everything out. More features will be added in the future.</p>
<h3>Reducers</h3>
<p>During the development of the project we noticed that we were handling similar constructs over and over again. But as we wanted to keep the factories creating the elements decouples we were not able to reuse code. The new concept of <code>Reducer</code> solves this issue. Reducers are post creation strategies that are executed after the factory created an element. Attributes are a good example of extra data that can be added to any kind of code element, the creation of attributes is always the same. Each factory can have a number of reducers and they can be defined per factory.</p>
<h3>Removed deprecation</h3>
<p>In php 8.2 dynamic properties were deprecated as this project was using dynamic properties to add extra information to the phpparser nodes we needed to change that functionality. The foundation for this change including a forward compatibility option were added in v5.3 and with this new release the deprecation is removed. From now on <code>FQSEN</code> of nodes is only available as a node attribute. If your code contains custom factories replace the the usage of <code>$object->fqsen</code> with <code>$object->getAttribute('fqsen')</code></p>
<h3>phpparser v5</h3>
<p>We switched internally to phpparser v5 to ensure this project will keep working with the latest features in php. For normal usecases there won't be any difference. phpparser is still able to process old code back to php 5. But it is no longer possible to switch the parser version when using this project.</p>
<ul>
<li>Add reducers to factories to support attributes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2033263776" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/477" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/477/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/477">#477</a></li>
<li>Upgrade code to php 8.1 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2033304089" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/480" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/480/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/480">#480</a></li>
<li>Move parameter building to reducer by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2038584218" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/484" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/484/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/484">#484</a></li>
<li>Allow phpparser v5 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2231973869" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/554" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/554/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/554">#554</a></li>
<li>Upgrade to phpunit 10 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jaapio/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jaapio">@jaapio</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2281810303" data-permission-text="Title is private" data-url="https://github.com/phpDocumentor/Reflection/issues/564" data-hovercard-type="pull_request" data-hovercard-url="/phpDocumentor/Reflection/pull/564/hovercard" href="https://github.com/phpDocumentor/Reflection/pull/564">#564</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/phpDocumentor/Reflection/compare/5.3.3...6.0.0"><tt>5.3.3...6.0.0</tt></a></p>jaapio