Skillshub php-error-handling
Modern PHP error and exception handling standards. 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/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/php-error-handling" ~/.claude/skills/comeonoliver-skillshub-php-error-handling && rm -rf "$T"
manifest:
skills/HoangNguyen0403/agent-skills-standard/php-error-handling/SKILL.mdsource content
PHP Error Handling
Priority: P0 (CRITICAL)
Structure
src/ └── Exceptions/ ├── {Domain}Exception.php └── Handler.php
Implementation Guidelines
- Exception-Driven: Favor
over returningthrowing exceptions
orfalse
for error states.null - Throwable Interface: Always catch
for both PHP 7/8 Errors and Exceptions.Throwable - Custom Exceptions: Extend
orRuntimeException
for domain-specific errors.LogicException - Multi-Catch: Use Union types in catch blocks:
.catch (DomainException | InvalidArgumentException $e) - 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