Releases: Ocramius/ProxyManager
2.5.0
This release fixes deprecation warnings that come with the newer PHP 7.4 release,
and completely covers the test suite with type checks.
With this release, no types coming from ProxyManager should be inferred as mixed
anymore,
allowing for safer, faster and more reliable downstream development.
Total issues resolved: 11
- 467: Covered tests via static types through psalm thanks to @Ocramius
- 475: Removed reliance on
Closure::bind(..., null)
thanks to @Ocramius - 477: Update phpunit/phpunit requirement from ^8.2.2 to ^8.2.5 thanks to @dependabot-preview[bot]
- 478: Update symfony/console requirement from ^4.3.1 to ^4.3.3 thanks to @dependabot-preview[bot]
- 479: Update infection/infection requirement from ^0.13.2 to ^0.13.4 thanks to @dependabot-preview[bot]
- 480: Update ocramius/package-versions requirement from ^1.4.0 to ^1.5.1 thanks to @dependabot-preview[bot]
- 481: Update couscous/couscous requirement from ^1.7.1 to ^1.7.2 thanks to @dependabot-preview[bot]
- 484: Fix deprecation PHP 7.4 thanks to @nicolas-grekas
- 485: Update phpunit/phpunit requirement from ^8.2.2 to ^8.3.3 thanks to @dependabot-preview[bot]
- 486: Remove process isolation from tests around file writer generators thanks to @Ocramius
- 487: Update vimeo/psalm requirement from 3.4.6 to 3.4.11 thanks to @dependabot-preview[bot]
2.2.3
This release fixes a bug in FileWriterGeneratorStrategy
in which permissions were not correctly
placed on files written to disk, and also ensures that different $proxyOptions
passed to the
various proxy factories lead to different proxy class names.
Total issues resolved: 4
- 458: Release Minor Version of 2.2 thanks to @natec8
- 462: Updates FileWriterGeneratorStrategy to set permissions on the created file thanks to @rsahlstrom
- 469:
ProxyManager\Factory\AbstractBaseFactory#generateProxy()
does not use$proxyOptions
as part of the class name signature thanks to @Ocramius - 470: #469 ensure factory considers
proxyOptions
when generating unique class names thanks to @Ocramius
2.4.0
This release introduces vimeo/psalm and PHPStorm-specific type-declarations for all API endpoints that do not return simple scalar/object types.
Effectively, that means that following code will now be statically analysable by psalm and PHPStorm, which will know the exact type of $proxy
:
class MyExample
{
public function bar(int $parameter) : void {}
}
$proxyFactory
->createProxy(MyExample::class)
->bar('hello world!'); // this will be detected as a type mismatch
In practice, this means that most projects won't need to use explicit inline type-hints such as /** @var SomeClassName $proxy */
, and the tooling will pick up these types implicitly.
Improvements were also applied to type declarations in generated code, autoloading (now switched to PSR-4) and null-check ??
operator usages.
Total issues resolved: 9
- 359: Extend date for bug fixes and security fixes for the 2.x series thanks to @malukenho
- 360: README.md fix FQCN usage thanks to @Slamdunk
- 408: Add return type
self
to generated method thanks to @malukenho - 426: Replace one ?: by ?? for consistency thanks to @nicolas-grekas
- 428: Moved to psr-4 thanks to @samnela
- 429: #426 replace falsey check (
?:
) with null coalesce (??
) operations thanks to @Ocramius - 453: Bump dependencies/CS standard/add typed properties thanks to @Ocramius
- 463: Provide
@psalm-param class-string<T>
documentation for proxy factories and anything type-hintedobject
and: object
thanks to @Ocramius - 465: #463: psalm-specific type declarations for generic/intersection types of proxies thanks to @Ocramius
2.3.1
This release reverts a BC break that led to fatal errors when
attempting to load child classes of the proxy generators.
Total issues resolved: 2
2.3.0
This release introduces support for PHP 7.4 typed properties, and requires
a minimum PHP version of 7.4.0 to be installed.
In addition to that, multiple improvements have been done to prepare for
PHP 8 support, and to reduce the chance of regressions by using stricter
type checks, testing for mutations, and applying stricter coding style
rules.
Total issues resolved: 25
- 398: Updated
@var
annotation tags to the standard form thanks to @ondrejmirtes - 399: Use assertDirectoryExists thanks to @carusogabriel
- 400:
LazyLoadingValueHolder
generated properties incorrectly documented thanks to @Ocramius - 403: Use Null Coalesce Operator thanks to @carusogabriel
- 405: Remove non needed requirement thanks to @exussum12
- 409: Use infection instead of humbug for mutation tests thanks to @malukenho
- 413: Document writing generating proxies to files thanks to @2DSharp
- 414: Wrong error message from ProxyManager\Exception\FileNotWritableException on restricted directory thanks to @2DSharp
- 416: Tidied up the docs and simply removed weasel words thanks to @GeeH
- 417: Use proper visibility when overwriting
TestCase#setUp()
thanks to @malukenho - 423: Typed properties (PHP 7.4) support thanks to @Ocramius
- 424: Cleaned up dependencies, update mutation test setup and static analysis thanks to @Ocramius
- 435: Allow php 7.3 thanks to @malukenho
- 438: Fixed location of
FileWriterGeneratorStrategy
temp file thanks to @fmasa - 439: Added professional support notes thanks to @Ocramius
- 441: Use namespaced version of "MockObject" thanks to @malukenho
- 442: Improve usage of phpunit thanks to @malukenho
- 443: #400 correcting docblock type for generated "valueHolder" properties thanks to @Ocramius
- 444: Run
infection/infection
withphpdbg
thanks to @Ocramius - 445: Run
composer update
with--ignore-platform-reqs
when running onphp: nightly
thanks to @Ocramius - 446: Exclude
zendframework/zend-stdlib < 3.2.1
(not compatible with PHP 7.3) thanks to @Ocramius - 447: Upgrade phpunit to ^v8 thanks to @malukenho
- 448: Forcing latest
nikic/php-parser
releases for dev dependencies thanks to @Ocramius - 449: Remove big-header section from documentation thanks to @malukenho
- 450: Removed unused badges from
README.md
thanks to @Ocramius
2.2.2
This release fixes incorrect passing of variadic method
parameters to the RPC adapter used by the remote
object proxies.
Total issues resolved: 1
2.2.1
This release fixes a performance issue in the instantiation of proxies, which
led to new ReflectionClass
instances being produced for every new instance
of a proxy.
Total issues resolved: 1
2.2.0
This release provides support for the PHP 7.2 object
type hint, as
well as dramatic (~300%) speed improvement during proxy class generation.
PHP 7.1 support has been dropped.
Total issues resolved: 11
- 367: Property name (suffixes) differ after each generation of a proxy thanks to @holtkamp
- 381: Adding
object
hit based tests and test assets - preparing for PHP 7.2 compatibility thanks to @Ocramius - 382: Removed redundant docblocks thanks to @Ocramius
- 383: PHPStan version upgrade 0.8 thanks to @Ocramius
- 384: Group generated unique identifiers by name thanks to @nicolas-grekas
- 385: #384 #367 deterministic generated property suffixes for generated properties thanks to @Ocramius
- 386: Removed licence headers from all single source files thanks to @Ocramius
- 387: Correct createProxy PHPDoc thanks to @PurpleBooth
- 391: PHPUnit 6.x upgrade thanks to @Ocramius
- 392: PHPStan level 7 analysis thanks to @snapshotpl
- 393: remove inheritdoc & body parsing from generated proxies thanks to @Tobion
2.1.1
This release provides aggressive improvements in static introspection via
phpstan/phpstan. No functional
changes, just removed possible bugs due to excessive parameter count
in method calls, as well as test type hint fixes.
Total issues resolved: 3
2.1.0
2.1.0
Improved
- Introduced support for PHP 7.1,
void
and nullable (?
)
types #314
#327 - The test suite is now fully CI-covered by mutation testing #348
- Moved all performance testing to PHPBench #326
- PHP 7.0 support dropped #327
Total issues resolved: 9
- 290: Branch-alias version bump: master bump to 3.0.x
- 314: Nullable params type
- 326: Moved performance tests to phpbench-based suite
- 327: PHP 7.1 support
- 336: Hotfix tests for php 7 support
- 339: Provided type ?... is invalid
- 343: Fix typo in ghost objects lazy loading code example
- 348: Introduced full mutation testing
- 349: install xdebug manually for php 7.1