Agent-skills-standard 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)
install
source · Clone the upstream repo
git clone https://github.com/HoangNguyen0403/agent-skills-standard
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/HoangNguyen0403/agent-skills-standard "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/php/php-error-handling" ~/.claude/skills/hoangnguyen0403-agent-skills-standard-php-error-handling && rm -rf "$T"
manifest:
skills/php/php-error-handling/SKILL.mdsource content
PHP Error Handling
Priority: P0 (CRITICAL)
Structure
See implementation examples for directory layout.
Build Exception Hierarchies
- Exception-Driven: Favor
over returningthrowing exceptions
orfalse
for error states.null - Custom Exceptions: Extend
orRuntimeException
for domain-specific errors.LogicException - 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
for both PHP 7/8 Errors and Exceptions.Throwable - Global Handler: Use
andset_exception_handler
for top-level logging and cleanup.set_error_handler - Finally: Always use
for resource cleanup (e.g., closing file handles, DB connections).finally - PSR-3 Logging: Implement
for structured error reporting.Psr\Log\LoggerInterface - Production Guard: Ensure
anddisplay_errors=Off
in productionlog_errors=On
.php.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
in production: Log to file; never show users.display_errors