Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Var Exporter

Var Exporter Laravel Package

symfony/var-exporter

VarExporter exports any serializable PHP data structure to plain PHP code that runs faster and leaner than unserialize() thanks to OPcache, plus a fast DeepCloner and lazy-proxy generation for objects.

View on GitHub
Deep Wiki
Context7

Provides tools to export, instantiate, hydrate, clone and lazy-load PHP objects

Frequently asked questions about Var Exporter
What is symfony/var-exporter used for in Laravel applications?
It exports serializable PHP values to plain PHP code, deep-clones objects, and generates lazy-loading proxies. In Laravel it is useful for faster cache payloads, reusable test fixtures, debugging complex objects, and cloning Eloquent models or collections. It is a Symfony component, so Laravel projects usually get it through Symfony dependencies rather than a Laravel-specific wrapper.
How do I install and configure symfony/var-exporter in Laravel?
Install it with Composer using composer require symfony/var-exporter. There is no Laravel service provider or config file to publish; you call VarExporter, DeepCloner, or ProxyHelper directly where needed. For best performance, install ext-deepclone or rely on the provided polyfill fallback.
Does symfony/var-exporter work with Laravel Eloquent models and collections?
It can export and deep-clone serializable PHP objects, including Eloquent models and Illuminate collections, while preserving serialization semantics and references. It works with magic getters and setters and read-only properties on supported PHP versions. You should still test relationships and model-specific serialization hooks because Eloquent objects can carry connection and event state.
How does VarExporter::export compare to serialize and var_export in Laravel?
VarExporter::export produces PHP code that OPcache can cache, which can be faster and more memory-efficient than unserialize or igbinary unserialize. Unlike var_export, it works on any serializable PHP value and preserves serialization hooks such as __sleep, __serialize, and Serializable. It also preserves references involving SplObjectStorage, ArrayObject, and ArrayIterator instances.
Do I need ext-deepclone to use DeepCloner or VarExporter in Laravel?
The component depends on ext-deepclone for maximum performance, but it also has a polyfill fallback. You can use DeepCloner and VarExporter without the native extension, though deep cloning will be slower. Check that the extension or polyfill is compatible with your PHP version before relying on it in production.
Can symfony/var-exporter generate lazy-loading proxies for Laravel services?
ProxyHelper::generateLazyProxy can generate lazy-loading decorators for interfaces and for abstract or internal classes. For regular concrete classes, prefer native PHP lazy objects where available. In Laravel you would bind generated proxy classes in the service container, but test container resolution and dependency injection carefully because proxies are separate classes.
Is symfony/var-exporter safe to use for production caching and queue serialization in Laravel?
It is designed for exporting trusted serializable PHP data, so use it with application data rather than untrusted user input. Generated PHP files work well with OPcache when written to disk under your control; avoid eval on dynamic or untrusted exported code. For queues and caches, test Laravel-specific payloads such as jobs and events before replacing serialize everywhere.
How do I test code that uses VarExporter or DeepCloner in Laravel?
Use DeepCloner in tests to clone complex fixtures without serialize and unserialize pitfalls such as PHP_Incomplete_Class objects. You can export fixtures to PHP code and include them as reusable test data, then assert that references and magic serialization methods still behave correctly. Include tests for Eloquent relationships, collections, and any Laravel cache or queue paths you change.
Which Laravel and PHP versions support symfony/var-exporter?
Support depends on the symfony/var-exporter version and its Composer constraints, not on a Laravel-specific release. Modern Laravel versions receive it through Symfony dependencies, and the polyfill helps where ext-deepclone is unavailable. Check the package requirements for your PHP version and test against your Laravel version before upgrading.
What are alternatives to symfony/var-exporter for serialization and deep cloning in Laravel?
Alternatives include native serialize and unserialize, var_export, igbinary, and simple clone or unserialize(serialize()) for deep copies. Native serialization is familiar but can be slower and can produce PHP_Incomplete_Class for missing classes. VarExporter is strongest when you want OPcache-friendly exported code, preserved references, and a dedicated DeepCloner.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin