specshaper/gdpr-bundle
A Symfony bundle for GDPR compliance that helps identify and anonymize personal data, manage consent, and handle data subject requests such as export or deletion. It integrates with Doctrine entities and configurable policies to simplify privacy workflows.
The first thing to internalize is that specshaper/gdpr-bundle is a Symfony 3 bundle, not a Laravel package. There is no service provider, no facade, and no config/gdpr.php that Laravel's auto-discovery will pick up. Treat it as a reference implementation rather than a dependency you composer require into a Laravel app.
Minimal steps:
mogilvie/encrypt-bundle, and the console command that emits the reporting output. Those three concepts (classify → encrypt → report) are the entire value proposition.Use the bundle as a design template, then implement natively in Laravel:
config/gdpr.php) mapping Model::class => ['column' => ['category' => 'pii', 'retention' => '365d', 'encrypted' => true]]. Add a trait like HasGdprData that reads this map and exposes gdprFields().mogilvie/encrypt-bundle (Doctrine DBAL types). In Laravel, replace this with an Eloquent Cast (EncryptedCast) backed by Crypt::encryptString() / decryptString(), or use laravel/framework's built-in encrypted casts. Keep the same contract: the model doesn't know it's encrypted, only the schema map does.php artisan gdpr:report — iterate the registry, group fields by category, emit CSV/JSON for auditors. This is the pattern the package was designed for.gdpr:export --subject={id} job that pulls from all registered models, and a gdpr:erase job that nulls/anonymizes designated fields.foothing/laravel-gdpr or sourcetoad/laravel-gdpr, the classification map from this bundle's annotations maps cleanly into their config — copy the structure, not the code.--ignore-platform-reqs, and even then it won't function.mogilvie/encrypt-bundle. If you were evaluating it for encryption specifically, look at that dependency's status and key-management story (there's no Laravel-equivalent APP_KEY rotation).DependencyInjection/Configuration.php and service compiler passes. Check the Resources/config/services.yml to see the intended wiring; that file is the clearest documentation in the repo.HasGdprData trait + registry + gdpr:report command in Laravel. You'll end up with ~200 lines of maintainable code that actually runs on your stack, versus indefinitely fighting a dead Symfony 3 bundle.How can I help you explore Laravel packages today?