laravel/serializable-closure
Securely serialize and unserialize PHP closures with Laravel’s fork of opis/closure 3.x, updated for modern PHP without requiring FFI. Wrap closures in SerializableClosure, set a secret key for signing, serialize safely, then restore with getClosure().
opis/closure 4.x), making it web-request-safe.setSecretKey() ensures serialized closures cannot be tampered with or executed maliciously, aligning with Laravel’s security-first philosophy.laravel/serializable-closure) with minimal boilerplate. No PHP extensions or complex configurations required.setSecretKey() is insecure. Mitigation: Use environment variables or Laravel’s config().$this or external variables) or stateless?secretKey dynamic (e.g., per-tenant) or static? How is it stored?Cache::put())? Test with serialize()/unserialize().opis/closure)? Assess compatibility risks.Serializable interface.HasFactory).Mockery.serialize()/unserialize().json_encode()).serialize($closure) → serialize(new SerializableClosure($closure))).config('app.serializable_closure_key')).Encrypter facade for dynamic keys.$this or static properties.opis/closure (stream protocol collision risk).SerializableClosure.composer require laravel/serializable-closure --update-with-dependencies.opis/closure 4.x (FFI-based). Track this issue for migration guidance.SerializableClosure wrapper.secretKey and PHP version compatibility.unserialize() calls to catch malformed data.SerializableClosure is used.@serializable tags for future maintainers.laravel and serializable-closure.SerializableClosure in high-load scenarios (e.g., 10K requests/sec).$_SERVER variables).| Failure Scenario | Impact | Mitigation |
|---|---|---|
Invalid secretKey |
Deserialization fails silently. | Validate key on startup; log errors. |
| Corrupted |
How can I help you explore Laravel packages today?