php-bug-catcher/bug-catcher
Bug Catcher is a Laravel/PHP package for catching and inspecting application errors and exceptions. It helps surface bugs early, keeps debugging details organized, and gives developers a simple way to log, review, and resolve issues with minimal setup in everyday Laravel workflows.
BatchRecordDeleteInterface, so a custom record type participates in deletion with no additional wiring. If your roadmap includes bespoke record types, this materially lowers the cost of staying on the package instead of building project/record management in-house.Consider it when:
record and perf_bucket cascade while record_log_withholder does not, so the old single-statement delete was rejected by the database. The explicit-ordering approach is the more predictable contract.BatchRecordDeleteInterface.Look elsewhere — or push back hard — when:
$em->remove(), i.e. a Doctrine EntityManager. If your team's conventions, tooling, and hiring are Eloquent-only, factor in the operational cost of a Doctrine-backed layer inside a Laravel app.To executives: The v2.0.0 release candidate restores a core admin capability — deleting a project now reliably removes that project's records, performance buckets, and withholders in one action. Previously the action was disabled because the database rejected the delete: dependent rows were being left to foreign keys that disagreed with each other, so cleanup would fail or leave orphans. The fix deletes dependents explicitly and the project last, which makes the operation deterministic. Practically, this closes a gap in customer/project offboarding and data-cleanup workflows that would otherwise have needed manual intervention. Two flags: it is a release candidate, not GA, and it sits inside a major version, so we should validate destructive paths in staging before committing.
To engineering: One DELETE FROM project was relying on mixed cascade behavior — record and perf_bucket cascade, record_log_withholder does not — so the statement was refused and the UI action was withdrawn. Dependents are now removed explicitly in order, project last. Record deletion goes through BatchRecordDeleteInterface, so custom record types are covered with no extra code. Ask: confirm whether our record types implement that interface, and confirm whether we need soft-delete or audit hooks on this path, since this is a hard purge.
How can I help you explore Laravel packages today?