Download the PHP package spomky-labs/cbor-bundle without Composer
On this page you can find all versions of the php package spomky-labs/cbor-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download spomky-labs/cbor-bundle
More information about spomky-labs/cbor-bundle
Files in spomky-labs/cbor-bundle
Package cbor-bundle
Short Description CBOR Encoder/Decoder Bundle for Symfony.
License MIT
Homepage https://github.com/spomky-labs
Informations about the package cbor-bundle
CBOR Bundle for Symfony
A Symfony bundle that provides CBOR (Concise Binary Object Representation) encoding and decoding support for the Symfony Serializer component.
CBOR is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. It is defined in RFC 8949.
Features
- 🔄 Full Symfony Serializer Integration: Works seamlessly with Symfony's serializer component
- 📦 Complete Type Support: Encode/decode all PHP types (scalars, arrays, objects, enums)
- ⚙️ Context Options: Fine-grained control over encoding behavior
- 🎯 Object Serialization: Serialize any PHP object to CBOR format
- 🔢 Enum Support: Native support for PHP 8.1+ backed and unit enums
- 📝 Well Documented: Comprehensive PHPDoc and guides
- ✅ Well Tested: Extensive test coverage
Requirements
- PHP 8.3 or higher
- Symfony 6.4, 7.x, or 8.x
Installation
Install the bundle using Composer:
If you're using Symfony Flex, the bundle will be automatically registered. Otherwise, register it manually in config/bundles.php:
Basic Usage
Encoding Data
Decoding Data
Object Serialization
Advanced Usage
Context Options
You can control encoding behavior using context options:
Available context options:
cbor_single_precision_float(bool): Use 32-bit floats instead of 64-bitcbor_indefinite_text_string(bool): Use indefinite length for text stringscbor_indefinite_byte_string(bool): Use indefinite length for byte stringscbor_indefinite_list(bool): Use indefinite length for arrayscbor_indefinite_map(bool): Use indefinite length for maps
Enum Support
The bundle natively supports PHP 8.1+ enums:
Direct Service Access
You can also use the encoder/decoder services directly:
Or use the service aliases:
Supported Types
The bundle supports encoding and decoding of:
- Scalars:
int,float,string,bool,null - Arrays: Indexed arrays (as CBOR lists) and associative arrays (as CBOR maps)
- Objects: Any object that can be normalized by Symfony's normalizers
- Enums: PHP 8.1+ backed and unit enums
- DateTime: Automatically handled via Symfony's normalizers
- Nested structures: Arrays of objects, objects containing arrays, etc.
Extending the Bundle
Custom CBOR Tags
You can register custom CBOR tags by implementing TagInterface and tagging the service:
Custom CBOR Objects
You can register custom CBOR objects by implementing OtherObjectInterface and tagging the service:
Upgrading
See UPGRADE-4.0.md for migration instructions from version 3.x to 4.0.
Documentation
For more detailed information about CBOR:
Contributing
Contributions are welcome! Please read our contributing guidelines before submitting a pull request.
Security
If you discover a security vulnerability, please follow our security policy.
Support
If you find this project useful and want to support its development:
- ⭐ Star the project on GitHub
- 💰 Become a sponsor
- ☕ Support via Patreon
License
This project is released under the MIT License.
Credits
This bundle is maintained by Florent Morselli and contributors.
All versions of cbor-bundle with dependencies
spomky-labs/cbor-php Version ^3.0
symfony/config Version ^5.3|^6.0
symfony/dependency-injection Version ^5.3|^6.0
symfony/http-kernel Version ^5.3|^6.0