ocramius/proxy-manager
ProxyManager generates and manages PHP proxy classes (virtual proxies, lazy-loading value holders, etc.) to implement the Proxy Pattern. Useful for lazy-loading, interceptors, and advanced DI/ORM scenarios. Install via Composer and use factory helpers to create proxies.
src/, where viable thanks to @samsonasikCHANGELOG.md, since laminas/automatic-releases already publishes per-release tag data from milestone text thanks to @Ocramiuscomposer/composer:^2.0.14, do not call InstalledVersions::getRawData() (which introduces runtime side-effect in pure API) thanks to @derrabusRelease 2.9.1
This release upgrades ocramius/proxy-manager to use composer-runtime-api:^2: this
means that you will need composer:^2 to install this version of ProxyManager.
In order to upgrade to composer v2, you can run composer self-update --2 on your
development or CI/CD system.
In addition to that, few notable improvements:
ocramius/package-versions dependency has been replaced by composer-runtime-apiTotal issues resolved: 9
composer.lock) thanks to @Ocramiusocramius/package-versions to composer-runtime-api:^2 thanks to @OcramiusThis release removes compatibility with ocramius/package-versions:^1.10.0, which
will be restored in ocramius/proxy-manager:^2.9.0 and newer.
Due to a change in ocramius/package-versions internals, and my own mistake in
not detecting that PackageVersions\Versions::VERSIONS was marked as [@internal](https://github.com/internal)
(note: annotations on constants are not really picked up by reflection, and therefore
not by static analysis tools either), we had a pretty abrupt crash when upgrading
to ocramius/package-versions:1.10.0.
In practice, PackageVersions\Versions::VERSIONS is hashed in order to prefix the
name of generated proxy classes, therefore ensuring that no proxy classes would
be re-used when underlying dependency versions change: while this design worked really
well, it relied on accessing the PackageVersions\Versions::VERSIONS constant, which
was never part of the ocramius/package-versions API, and which was removed in an
internal refactoring of ocramius/package-versions:1.10.0.
This change is only in place to prevent installation of ocramius/package-versions:1.10.0,
while a subsequent patch will be made to phase out said package, to be replaced with
direct usage of composer-runtime-api:^2, which comes with composer 2.x.
Total issues resolved: 2
This release fixes compatibility with PHP 7.4.1 and newer, since
PHP introduced a major backwards compatibility break in a patch
release, rendering lazy-loading of typed properties completely
non-functioning (see bug 79373 "uninitialized typed property cannot accessed in __get magic method").
Types for closures in proxy factories have also been improved, and some purity type markers were added to some library internals.
Total issues resolved: 16
This release REMOVES support for PHP 7.4.1 and newer, since
PHP introduced a major backwards compatibility break in a patch
release, rendering lazy-loading of typed properties completely
non-functioning (see bug 79373 "uninitialized typed property cannot accessed in __get magic method").
Please upgrade to 2.8.x ASAP: this release is only here to raise
awareness of the issue in the 2.7.x series, and to make auto-update
tooling notice it.
While ocramius/proxy-manager 2.7.1 is compatible with PHP 7.4.0,
PHP 7.4.1 or newer will require ocramius/proxy-manager 2.8.0 or
newer to operate correctly.
Total issues resolved: 1
This release upgrades dependencies and provides better type inference for proxy factories.
Total issues resolved: 2
This release fixes immutability static analysis for internal ProxyManager symbols, which was incorrect due to being performed with an older psalm version.
Support for stream wrappers in combination with the FileLocator also has been corrected,
since stream wrappers are inherently incompatible with realpath() from php-src.
Total issues resolved: 3
This release:
zendframework/zend-code to laminas/laminas-codewebimpress/safe-writer to better handle atomic proxy file
write operations, effectively deferring any race conditions to a third-party
package designed just for that.[@psalm-immutable](https://github.com/psalm-immutable), integrates the newTotal issues resolved: 40
7.4.* (NOT 8.x!) thanks to @OcramiusVersion thanks to @BackEndTeazendframework/zend-code to laminas/laminas-code thanks to @orklah2.5.x into master, end 2.5.x support in favour of 2.6.x thanks to @OcramiusThis release fixes a bug in handling default arguments of remote object proxies, which were not being passed to the remote call adapter.
Total issues resolved: 2
Total issues resolved: 2
How can I help you explore Laravel packages today?