Tags: verkkokauppacom/ProxyManager
Tags
This release upgrades dependencies and provides better type inference… … for proxy factories. Total issues resolved: **2** - [563: Update symfony/console requirement from ^4.4.2 to ^4.4.4](Ocramius#563) thanks to @dependabot-preview[bot] - [567: Better type inference for used `class-string`s](Ocramius#567) thanks to @Ocramius
This release fixes immutability static analysis for internal ProxyMan… …ager 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** - [553: Revert "Documented basic immutable/mutation-free interfaces and services in the package"](Ocramius#553) thanks to @Ocramius - [557: Fix property initializers in ghost object examples](Ocramius#557) thanks to @ostrolucky - [558: Fix compatibility of `FileLocator` with stream wrappers](Ocramius#558) thanks to @Bittarman
This release: * migrates the project from `zendframework/zend-code` to `laminas/laminas-code` * integrates with `webimpress/safe-writer` to better handle atomic proxy file write operations, effectively deferring any race conditions to a third-party package designed just for that. * improves type declarations by marking some of ProxyManager's safe internals as `@psalm-immutable`, integrates the new * uses stricter tested dependency sets, reducing the range of possible bugs coming from too wide dependency permutations Total issues resolved: **40** - [492: Lock onto PHP 7.4.x (not 7.5.x or newer)](Ocramius#492) thanks to @Ocramius - [493: Update phpunit/phpunit requirement from ^8.3.3 to ^8.3.4](Ocramius#493) thanks to @dependabot-preview[bot] - [494: Update zendframework/zend-code requirement from ^3.3.1 to ^3.3.2](Ocramius#494) thanks to @dependabot-preview[bot] - [496: Update nikic/php-parser requirement from ^4.2.2 to ^4.2.3](Ocramius#496) thanks to @dependabot-preview[bot] - [497: Update symfony/console requirement from ^4.3.3 to ^4.3.4](Ocramius#497) thanks to @dependabot-preview[bot] - [500: Update vimeo/psalm requirement from 3.4.11 to 3.5.1](Ocramius#500) thanks to @dependabot-preview[bot] - [501: Ocramius#492 allow installation only on PHP `7.4.*` (NOT 8.x!)](Ocramius#501) thanks to @Ocramius - [502: Documented basic immutable/mutation-free interfaces and services in the package](Ocramius#502) thanks to @Ocramius - [505: Update phpbench/phpbench requirement from ^0.16.9 to ^0.16.10](Ocramius#505) thanks to @dependabot-preview[bot] - [506: Update nikic/php-parser requirement from ^4.2.3 to ^4.2.4](Ocramius#506) thanks to @dependabot-preview[bot] - [507: Update phpunit/phpunit requirement from ^8.3.4 to ^8.3.5](Ocramius#507) thanks to @dependabot-preview[bot] - [508: Update vimeo/psalm requirement from 3.5.1 to 3.5.3](Ocramius#508) thanks to @dependabot-preview[bot] - [510: Update infection/infection requirement from ^0.13.6 to ^0.14.1](Ocramius#510) thanks to @dependabot-preview[bot] - [512: Update squizlabs/php&Ocramius#95;codesniffer requirement from ^3.4.2 to ^3.5.2](Ocramius#512) thanks to @dependabot-preview[bot] - [514: Update infection/infection requirement from ^0.14.1 to ^0.14.2](Ocramius#514) thanks to @dependabot-preview[bot] - [515: Update zendframework/zend-code requirement from ^3.3.2 to ^3.4.0](Ocramius#515) thanks to @dependabot-preview[bot] - [516: Update phpunit/phpunit requirement from ^8.3.5 to ^8.4.2](Ocramius#516) thanks to @dependabot-preview[bot] - [517: Update nikic/php-parser requirement from ^4.2.3 to ^4.2.5](Ocramius#517) thanks to @dependabot-preview[bot] - [519: Update symfony/console requirement from ^4.3.4 to ^4.3.6](Ocramius#519) thanks to @dependabot-preview[bot] - [520: Correct current failures with psalm 3.6.2](Ocramius#520) thanks to @Ocramius - [521: Update vimeo/psalm requirement from 3.5.1 to 3.6.3](Ocramius#521) thanks to @dependabot-preview[bot] - [522: Feature: integration with webimpress/safe-writer](Ocramius#522) thanks to @michalbundyra - [524: Remove wrong comment on chore tasks required on `Version`](Ocramius#524) thanks to @BackEndTea - [525: Update nikic/php-parser requirement from ^4.2.5 to ^4.3.0](Ocramius#525) thanks to @dependabot-preview[bot] - [527: Update phpunit/phpunit requirement from ^8.4.2 to ^8.4.3](Ocramius#527) thanks to @dependabot-preview[bot] - [528: Update infection/infection requirement from ^0.14.2 to ^0.15.0](Ocramius#528) thanks to @dependabot-preview[bot] - [529: Update vimeo/psalm requirement from 3.6.3 to 3.7.0](Ocramius#529) thanks to @dependabot-preview[bot] - [530: Update symfony/console requirement from ^4.3.6 to ^4.4.1](Ocramius#530) thanks to @dependabot-preview[bot] - [532: Stable PHP 7.4 builds - Travis CI config](Ocramius#532) thanks to @michalbundyra - [533: Update phpunit/phpunit requirement from ^8.4.3 to ^8.5.0](Ocramius#533) thanks to @dependabot-preview[bot] - [534: Update vimeo/psalm requirement from 3.7.0 to 3.7.2](Ocramius#534) thanks to @dependabot-preview[bot] - [535: Update squizlabs/php&Ocramius#95;codesniffer requirement from ^3.5.2 to ^3.5.3](Ocramius#535) thanks to @dependabot-preview[bot] - [541: Update symfony/console requirement from ^4.4.1 to ^4.4.2](Ocramius#541) thanks to @dependabot-preview[bot] - [542: Update zendframework/zend-code requirement from ^3.4.0 to ^3.4.1](Ocramius#542) thanks to @dependabot-preview[bot] - [543: Update phpunit/phpunit requirement from ^8.5.0 to ^8.5.1](Ocramius#543) thanks to @dependabot-preview[bot] - [546: Migrating from `zendframework/zend-code` to `laminas/laminas-code`](Ocramius#546) thanks to @orklah - [547: Fixs a few small issues that newest Psalm flagged](Ocramius#547) thanks to @muglug - [548: Fixed code style after replacing Zend with Laminas](Ocramius#548) thanks to @alfredbez - [550: Change missed occurences of zendframework](Ocramius#550) thanks to @orklah - [552: Merge `2.5.x` into `master`, end `2.5.x` support in favour of `2.6.x`](Ocramius#552) thanks to @Ocramius
This release fixes a bug in handling default arguments of remote obje… …ct proxies, which were not being passed to the remote call adapter. Total issues resolved: **2** - [539: BC Break in 2.2.2? - Problem with `get_func_args()` and method with default parameters](Ocramius#539) thanks to @pedro-stanaka - [540: `RemoteObjectMethod` generation: support for methods with default parameters](Ocramius#540) thanks to @pedro-stanaka
Total issues resolved: **2** - [536: Accessing properties of Serializable proxy](Ocramius#536) thanks to @Ludo444 - [537: Use ReflectionClass to create proxied class instance inside PublicScopeSimulator](Ocramius#537) thanks to @Ludo444
This release fixes [deprecation warnings that come with the newer PHP… … 7.4 release](https://wiki.php.net/rfc/deprecations_php_7_4), 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](Ocramius#467) thanks to @Ocramius - [475: Removed reliance on `Closure::bind(&Ocramius#95;, null)`](Ocramius#475) thanks to @Ocramius - [477: Update phpunit/phpunit requirement from ^8.2.2 to ^8.2.5](Ocramius#477) thanks to @dependabot-preview[bot] - [478: Update symfony/console requirement from ^4.3.1 to ^4.3.3](Ocramius#478) thanks to @dependabot-preview[bot] - [479: Update infection/infection requirement from ^0.13.2 to ^0.13.4](Ocramius#479) thanks to @dependabot-preview[bot] - [480: Update ocramius/package-versions requirement from ^1.4.0 to ^1.5.1](Ocramius#480) thanks to @dependabot-preview[bot] - [481: Update couscous/couscous requirement from ^1.7.1 to ^1.7.2](Ocramius#481) thanks to @dependabot-preview[bot] - [484: Fix deprecation PHP 7.4](Ocramius#484) thanks to @nicolas-grekas - [485: Update phpunit/phpunit requirement from ^8.2.2 to ^8.3.3](Ocramius#485) thanks to @dependabot-preview[bot] - [486: Remove process isolation from tests around file writer generators](Ocramius#486) thanks to @Ocramius - [487: Update vimeo/psalm requirement from 3.4.6 to 3.4.11](Ocramius#487) thanks to @dependabot-preview[bot]
This release fixes a bug in `FileWriterGeneratorStrategy` in which pe… …rmissions 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](Ocramius#458) thanks to @natec8 - [462: Updates FileWriterGeneratorStrategy to set permissions on the created file](Ocramius#462) thanks to @rsahlstrom - [469: `ProxyManager\Factory\AbstractBaseFactory#generateProxy()` does not use `$proxyOptions` as part of the class name signature](Ocramius#469) thanks to @Ocramius - [470: Ocramius#469 ensure factory considers `proxyOptions` when generating unique class names](Ocramius#470) thanks to @Ocramius
This release introduces [vimeo/psalm](https://github.com/vimeo/psalm)… … and [PHPStorm](https://www.jetbrains.com/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`: ```php 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](Ocramius#359) thanks to @malukenho - [360: README.md fix FQCN usage](Ocramius#360) thanks to @Slamdunk - [408: Add return type `self` to generated method](Ocramius#408) thanks to @malukenho - [426: Replace one ?: by ?? for consistency](Ocramius#426) thanks to @nicolas-grekas - [428: Moved to psr-4](Ocramius#428) thanks to @samnela - [429: Ocramius#426 replace falsey check (`?:`) with null coalesce (`??`) operations](Ocramius#429) thanks to @Ocramius - [453: Bump dependencies/CS standard/add typed properties](Ocramius#453) thanks to @Ocramius - [463: Provide `@psalm-param class-string<T>` documentation for proxy factories and anything type-hinted `object` and `: object`](Ocramius#463) thanks to @Ocramius - [465: Ocramius#463: psalm-specific type declarations for generic/intersection types of proxies](Ocramius#465) thanks to @Ocramius
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** - [451: synfony integration](Ocramius#451) thanks to @soufianez75 - [452: Revert BC break - `: void` cannot be added as return type to open classes](Ocramius#452) thanks to @Ocramius
This release introduces support for PHP 7.4 typed properties, and req… …uires 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](Ocramius#398) thanks to @ondrejmirtes - [399: Use assertDirectoryExists](Ocramius#399) thanks to @carusogabriel - [400: `LazyLoadingValueHolder` generated properties incorrectly documented](Ocramius#400) thanks to @Ocramius - [403: Use Null Coalesce Operator](Ocramius#403) thanks to @carusogabriel - [405: Remove non needed requirement](Ocramius#405) thanks to @exussum12 - [409: Use infection instead of humbug for mutation tests](Ocramius#409) thanks to @malukenho - [413: Document writing generating proxies to files](Ocramius#413) thanks to @2DSharp - [414: Wrong error message from ProxyManager\Exception\FileNotWritableException on restricted directory](Ocramius#414) thanks to @2DSharp - [416: Tidied up the docs and simply removed weasel words](Ocramius#416) thanks to @GeeH - [417: Use proper visibility when overwriting `TestCase#setUp()`](Ocramius#417) thanks to @malukenho - [423: Typed properties (PHP 7.4) support](Ocramius#423) thanks to @Ocramius - [424: Cleaned up dependencies, update mutation test setup and static analysis](Ocramius#424) thanks to @Ocramius - [435: Allow php 7.3 ](Ocramius#435) thanks to @malukenho - [438: Fixed location of `FileWriterGeneratorStrategy` temp file](Ocramius#438) thanks to @fmasa - [439: Added professional support notes](Ocramius#439) thanks to @Ocramius - [441: Use namespaced version of "MockObject"](Ocramius#441) thanks to @malukenho - [442: Improve usage of phpunit](Ocramius#442) thanks to @malukenho - [443: Ocramius#400 correcting docblock type for generated "valueHolder" properties](Ocramius#443) thanks to @Ocramius - [444: Run `infection/infection` with `phpdbg`](Ocramius#444) thanks to @Ocramius - [445: Run `composer update` with `--ignore-platform-reqs` when running on `php: nightly`](Ocramius#445) thanks to @Ocramius - [446: Exclude `zendframework/zend-stdlib < 3.2.1` (not compatible with PHP 7.3)](Ocramius#446) thanks to @Ocramius - [447: Upgrade phpunit to ^v8](Ocramius#447) thanks to @malukenho - [448: Forcing latest `nikic/php-parser` releases for dev dependencies](Ocramius#448) thanks to @Ocramius - [449: Remove big-header section from documentation](Ocramius#449) thanks to @malukenho - [450: Removed unused badges from `README.md`](Ocramius#450) thanks to @Ocramius
PreviousNext