> php-error-handling
Implement modern PHP error and exception handling patterns. Use when implementing exception hierarchies, error handlers, or custom exceptions in PHP. (triggers: **/*.php, try, catch, finally, Throwable, set_exception_handler)
curl "https://skillshub.wtf/HoangNguyen0403/agent-skills-standard/php-error-handling?format=md"PHP Error Handling
Priority: P0 (CRITICAL)
Structure
See implementation examples for directory layout.
Build Exception Hierarchies
- Exception-Driven: Favor
throwing exceptionsover returningfalseornullfor error states. - Custom Exceptions: Extend
RuntimeExceptionorLogicExceptionfor domain-specific errors. - Multi-Catch: Use Union types in catch blocks:
catch (DomainException | InvalidArgumentException $e).
See implementation examples for domain exception hierarchy with multi-catch and finally.
Configure Global Error Handling
- Throwable Interface: Always catch
Throwablefor both PHP 7/8 Errors and Exceptions. - Global Handler: Use
set_exception_handlerandset_error_handlerfor top-level logging and cleanup. - Finally: Always use
finallyfor resource cleanup (e.g., closing file handles, DB connections). - PSR-3 Logging: Implement
Psr\Log\LoggerInterfacefor structured error reporting. - Production Guard: Ensure
display_errors=Offandlog_errors=Onin productionphp.ini.
Anti-Patterns
- No
@error suppression: Handle or log errors explicitly. - No empty catch blocks: Log or rethrow all caught exceptions.
- No exceptions for control flow: Reserve for unexpected errors only.
- No
display_errorsin production: Log to file; never show users.
References
> related_skills --same-repo
> common-store-changelog
Generate user-facing release notes for the Apple App Store and Google Play Store by collecting git history, triaging user-impacting changes, and drafting store-compliant changelogs. Enforces character limits (App Store ≤4000, Google Play ≤500), tone, and bullet format. Use when generating release notes, app store changelog, play store release, what's new, or version release notes for any mobile app. (triggers: generate changelog, app store notes, play store release, what's new, release notes, ve
> golang-tooling
Go developer toolchain — gopls LSP diagnostics, linting, formatting, and vet. Use when setting up Go tooling, running linters, or integrating gopls with Claude Code. (triggers: gopls, golangci-lint, golangci.yml, go vet, goimports, staticcheck, go tooling, go lint)
> common-ui-design
Design distinctive, production-grade frontend UI with bold aesthetic choices. Use when building web components, pages, interfaces, dashboards, or applications in any framework (React, Next.js, Angular, Vue, HTML/CSS). (triggers: build a page, create a component, design a dashboard, landing page, UI for, build a layout, make it look good, improve the design, build UI, create interface, design screen)
> common-owasp
OWASP Top 10 audit checklist for Web Applications (2021) and APIs (2023). Load during any security review, PR review, or codebase audit touching web, mobile backend, or API code. (triggers: security review, OWASP, broken access control, IDOR, BOLA, injection, broken auth, API review, authorization, access control)