bear/resource
Hypermedia framework for object as a service
1.33.0
723K downloads/mo
#4042 most downloaded on Packagist
bearsunday/BEAR.Resource
What this package is like to depend on
Last release 2 months ago
20 Jun 2026
Release timing varies
gaps range from 9 days to 4 months
Rarely documented
notes for 15 of 145 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
147 releases · first in 2012
8 releases in the last 12 months
see the full history below
Release timeline
145 releases · Oct 2012 to Jun 2026Releases
latest 60 of 147-
1.33.020 Jun 2026Release notes
Open source →Added
HttpRequestExceptionfor HTTP transport and response parsing failuresJsonSchemaException::getErrors()returning typedJsonSchemaError/ConstraintViolationDTOs through aJsonSchemaErrorscollection (#364)JsonSchemaRequestException/JsonSchemaResponseExceptionsubclasses for source discrimination at catch sites (#369)
Changed
- Set default cURL timeouts for HTTP resource requests: 5 seconds to connect and 30 seconds overall
Fixed
- Remove invalid Psalm taint-source annotation from
AbstractRequest::__invoke()
Release notes
Open source →Added
HttpRequestExceptionfor HTTP transport and response parsing failuresJsonSchemaException::getErrors()returning typedJsonSchemaError/ConstraintViolationDTOs through aJsonSchemaErrorscollection (#364)JsonSchemaRequestException/JsonSchemaResponseExceptionsubclasses for source discrimination at catch sites (#369)
Changed
- Set default cURL timeouts for HTTP resource requests: 5 seconds to connect and 30 seconds overall
Fixed
- Remove invalid Psalm taint-source annotation from
AbstractRequest::__invoke()
-
1.32.012 May 2026Release notes
Open source →Changed
HalRenderernow evaluates embeddedAbstractRequestinstances via(string)cast instead of direct__invoke(), allowing lazy/batch decorators (e.g. bear/async'sAsyncRequest) to short-circuit invocation (#360).- Pre-seed
HalRendereron same-schema sibling embeds before evaluation so batch decorators preserve_linkson flushed siblings (#360). - Relax
AbstractRequest::jsonSerialize()return type tomixedforJsonSerializableinterface compliance (#360).
Fixed
- Skip body schema validation for cached rendered responses to avoid redundant validation on cache hits (#359).
Release notes
Open source →Fixed
- Skip body schema validation for cached rendered responses (#359)
- Allow
HalRendererembed evaluation to handlemixedreturn fromjsonSerialize()(#360)
-
1.31.129 Apr 2026Release notes
Open source →Fixed
- Allow
JsonSchemaInterceptorrequest validation to flatten Ray.InputQuery#[Input]DTO arguments before JSON Schema validation.
Release notes
Open source →Fixed
- Allow
JsonSchemaInterceptorrequest validation to flatten Ray.InputQuery#[Input]DTO arguments before JSON Schema validation
- Allow
-
1.31.002 Feb 2026Release notes
Open source →Added
ResourceClientclass — statelessResourceInterfaceimplementation safe for coroutine/async environmentsMethodenum for type-safe HTTP method parametersResourceClient::newRequest()for direct request creation without fluent interfaceLinkCrawlerextracted fromLinkerfor coroutine safety
Changed
Linkerdelegates list detection toLinkCrawlerfor shared logic
Release notes
Open source →Added
ResourceClientclass — statelessResourceInterfaceimplementation safe for coroutine/async environmentsMethodenum for type-safe HTTP method parametersResourceClient::newRequest()for direct request creation without fluent interfaceLinkCrawlerextracted fromLinkerfor coroutine safety
Changed
Linkerdelegates list detection toLinkCrawlerfor shared logic
-
1.30.024 Jan 2026Release notes
Open source →Added
EmbedInterceptorInterfacefor swappable embed implementations- Allows alternative implementations (e.g., async/parallel embed resolution) to be injected via DI
EmbedInterceptornow implements this interfaceEmbedResourceModulebinds via the interface for extensibility
Release notes
Open source →Added
EmbedInterceptorInterfacefor swappable embed implementations- Allows alternative implementations (e.g., async/parallel embed resolution) to be injected via DI
EmbedInterceptornow implements this interfaceEmbedResourceModulebinds via the interface for extensibility
-
1.29.028 Dec 2025Release notes
Open source →Added
- Psalm taint annotations for improved security analysis
- Added
@psalm-taint-specializetoAbstractUri::__toString() - Enhanced static analysis for detecting potential security issues
- Added
- Psalm taint annotations for improved security analysis
-
1.28.008 Dec 2025Release notes
Open source →Added
- Ray.InputQuery
#[Input]attribute support for OPTIONS method- OPTIONS requests now properly expand
#[Input]parameters to show constructor properties - Added comprehensive test coverage for Input parameter expansion scenarios
- OPTIONS requests now properly expand
Fixed
- Bug where non-Input required parameters were dropped when
#[Input]attribute existed - OPTIONS method now correctly handles mixed Input and regular parameters
Changed
- Refactored
OptionsMethodRequestparameter processing for improved maintainability- Extracted Input parameter processing to dedicated method
- Improved code organization and readability
Release notes
Open source →Added
- Ray.InputQuery
#[Input]attribute support for OPTIONS method- OPTIONS requests now properly expand
#[Input]parameters to show constructor properties - Added comprehensive test coverage for Input parameter expansion scenarios
- OPTIONS requests now properly expand
Fixed
- Bug where non-Input required parameters were dropped when
#[Input]attribute existed - OPTIONS method now correctly handles mixed Input and regular parameters
Changed
- Refactored
OptionsMethodRequestparameter processing for improved maintainability- Extracted Input parameter processing to dedicated method
- Improved code organization and readability
- Ray.InputQuery
-
1.27.011 Nov 2025Release notes
Open source →Changes
Changed
- PHP 8 Attributes Migration: Removed
doctrine/annotationsanddoctrine/cachedependencies, migrated to native PHP 8 attributes - Minimum PHP Version: Updated requirement from PHP 8.1 to PHP 8.2
- Development Tools: Updated PHPUnit from 9.6 to 11.0, migrated test suite to PHP 8 attributes
- Dependencies: Updated to stable Ray dependencies (ray/aop ^2.18.0, ray/di ^2.18.0), replaced nocarrier/hal with koriym/hal ^1.1
- CI/CD: Updated Scrutinizer CI to PHP 8.4
Removed
doctrine/annotations(abandoned package)doctrine/cache(abandoned package)symfony/polyfill-php83(unnecessary for PHP 8.2+)- Backward compatibility code for annotations
Fixed
- CI workflow to remove PHP 8.1 from test matrix
- Parameter processing to handle methods without attributes correctly
- Updated
.gitignorefor.phpunit.cachedirectory
⚠️ Migration Required
Applications using annotations must migrate to PHP 8 attributes:
composer require --dev bearsunday/rector-bearsunday # Preview changes vendor/bin/rector process src --config=vendor/bearsunday/rector-bearsunday/rector.php --dry-run # Apply migration vendor/bin/rector process src --config=vendor/bearsunday/rector-bearsunday/rector.php
Why This Change?
The
doctrine/annotationspackage has been officially abandoned by its maintainers. This change:- Eliminates security and compatibility risks from abandoned packages
- Adopts native PHP 8 attributes as the modern standard
- Improves performance (no runtime annotation parsing overhead)
- Provides automated migration tooling
Full changelog: https://github.com/bearsunday/BEAR.Resource/blob/1.x/CHANGELOG.md
Release notes
Open source →Changed
- BREAKING: Minimum PHP version requirement changed from 8.1 to 8.2
- Migrated from Doctrine Annotations to PHP 8 Attributes
- Upgraded PHPUnit from 9.6 to 11.0
- Migrated PHPUnit XML configuration to latest schema
- Converted PHPUnit annotations to PHP 8 attributes (
@depends→#[Depends],@dataProvider→#[DataProvider]) - Updated Scrutinizer CI to PHP 8.4
- Replaced
nocarrier/halwithkoriym/hal^1.1 - Restored stable Ray dependencies (ray/aop ^2.18.0, ray/di ^2.18.0)
- Applied readonly class optimization by Rector
Removed
- BREAKING: Removed all Doctrine Annotations support
- Removed backward compatibility code for annotations (
getAnnotationParamMetas,getAssistedNames,addNamedParams,getWebContext,setAssistedAnnotation,getInsFromMethodAnnotations) - Removed
doctrine/annotationsdependency - Removed unnecessary
symfony/polyfill-php83dependency - Removed obsolete
@CookieParamannotation docblocks
Migration Guide: Use bearsunday/rector-bearsunday to automatically convert annotations to attributes.
Fixed
- CI workflow to remove PHP 8.1 from test matrix
- Parameter processing to handle methods without attributes correctly
- Updated
.gitignorefor.phpunit.cachedirectory
- PHP 8 Attributes Migration: Removed
-
1.26.329 Jul 2025Release notes
Open source → -
1.26.217 Jul 2025Release notes
Open source →Changed
- Updated
ray/input-querydependency to version ^0.3.0
This minor release updates the Ray.InputQuery dependency to support the latest features and improvements in version 0.3.0.
For full changelog, see: https://github.com/bearsunday/BEAR.Resource/blob/1.x/CHANGELOG.md
- Updated
-
1.26.110 Jul 2025Release notes
Open source →Fixed
- Exception handling in parameter resolution for Ray.InputQuery integration
- Consistent ParameterException throwing when InvalidArgumentException occurs in parameter injection
- Proper exception chaining to preserve debugging context
-
1.26.007 Jul 2025Release notes
Open source →Added
- Ray.InputQuery integration for file upload handling
- Support for
AbstractFileUploadreturn types inInputFormParamandInputFormsParam - Ability to pass generated file upload objects directly to resource methods
- Integration tests for file upload functionality
InputParamclass for handling input query parameters- Comprehensive file upload examples and documentation
- Comprehensive type definitions in
Types.phpfor improved type safety
Changed
- Updated
ray/input-querydependency to version ^0.2.0 - Updated
koriym/file-uploaddependency to version ^0.2.0 - Refactored file upload handling for improved consistency and readability
- Replaced
createmethod withnewInstancefor inputQuery instantiation
Fixed
- Parameter validation to prevent silent errors
- Code style issues in test files
Dependencies
ray/input-query: ^0.2.0koriym/file-upload: ^0.2.0ext-fileinfo: * (required for Windows CI compatibility)
-
1.25.026 Feb 2025Release notes
Open source →Added
- Request exception handler for JSON schema validation
- Arguments support for
JsonSchemaRequestExceptionHandlerInterface
Changed
- Enhanced JSON schema validation error handling
-
1.24.011 Jan 2025Release notes
Open source →Added
- PHP 8.4 support in CI workflow
- PHPStan baseline configuration
Changed
- Update
rize/uri-templaterequirement from ^0.3 to ^0.4 - Update method parameters to allow nullable types
- Refactor codebase for improved readability and readonly properties
- Replace
assertSamewithassertJsonStringEqualsJsonStringin tests - Update copyright year to 2025
-
1.23.027 Oct 2024 -
1.22.522 Oct 2024Nothing published for this version
-
1.22.421 Oct 2024Nothing published for this version
-
1.22.323 May 2024Nothing published for this version
-
1.22.223 May 2024Nothing published for this version
-
1.22.126 Apr 2024Nothing published for this version
-
1.22.022 Apr 2024Nothing published for this version
-
1.21.023 Mar 2024Nothing published for this version
-
1.20.222 Aug 2023Nothing published for this version
-
1.20.125 Jul 2023Nothing published for this version
-
1.20.024 Jul 2023Nothing published for this version
-
1.19.107 Feb 2023Nothing published for this version
-
1.19.023 Dec 2022Nothing published for this version
-
1.18.129 Nov 2022Nothing published for this version
-
1.18.029 Oct 2022Nothing published for this version
-
1.17.6no dateNothing published for this version
-
1.17.527 Mar 2022Nothing published for this version
-
1.17.426 Mar 2022Nothing published for this version
-
1.17.311 Mar 2022Nothing published for this version
-
1.17.222 Feb 2022Nothing published for this version
-
1.17.126 Jan 2022Nothing published for this version
-
1.17.011 Jan 2022Nothing published for this version
-
1.16.314 Nov 2021Nothing published for this version
-
1.16.205 Nov 2021Nothing published for this version
-
1.16.1no dateNothing published for this version
-
1.16.031 Oct 2021Nothing published for this version
-
1.15.615 Jul 2021Nothing published for this version
-
1.15.509 May 2021Nothing published for this version
-
1.15.417 Mar 2021Nothing published for this version
-
1.15.309 Mar 2021Nothing published for this version
-
1.15.230 Jan 2021Nothing published for this version
-
1.15.118 Jan 2021Nothing published for this version
-
1.15.013 Jan 2021Nothing published for this version
-
1.14.909 Nov 2020Nothing published for this version
-
1.14.806 Oct 2020Nothing published for this version
-
1.14.726 Aug 2020Nothing published for this version
-
1.14.601 Jul 2020Nothing published for this version
-
1.14.524 Jun 2020Nothing published for this version
-
1.14.421 Jun 2020Nothing published for this version
-
1.14.307 Jun 2020Nothing published for this version
-
1.14.213 Mar 2020Nothing published for this version
-
1.14.120 Feb 2020Nothing published for this version
-
1.14.003 Dec 2019Nothing published for this version
-
1.13.106 Sep 2019Nothing published for this version
-
1.13.017 Jul 2019Nothing published for this version
-
1.12.324 Jun 2019Nothing published for this version