check-connection-pool
Connection Pool Performance Analysis
Analyze PHP code for connection pool issues and database connection management problems.
When to Use
- Reviewing database-heavy PHP applications
- Investigating connection exhaustion or memory leaks
- Auditing long-running workers (queue consumers, daemons)
- Checking Doctrine EntityManager lifecycle issues
- Reviewing HTTP client usage patterns
Analysis Approach
- Scan for connection creation patterns (PDO, Redis, Guzzle)
- Check loop bodies for repeated connection instantiation
- Verify try/finally cleanup on pool acquire/release
- Check timeout configuration on all connection types
- Review persistent connection usage and state reset
- Audit worker processes for connection refresh logic
Detection Rules
| ID | Pattern | What to Look For |
|---|---|---|
| CP-01 | Connection leak | new PDO without cleanup in exception/early-return paths |
| CP-02 | Connection in loop | new PDO/new Redis/new Client inside foreach/while |
| CP-03 | Missing timeout | PDO without ATTR_TIMEOUT, Redis without connect timeout |
| CP-04 | Persistent misuse | ATTR_PERSISTENT => true without shutdown cleanup |
| CP-05 | Pool exhaustion | Multiple connections opened without reuse |
| CP-06 | Missing finally | $pool->release() not in finally block |
| CP-07 | State not reset | Connection returned to pool with modified session state |
| CP-08 | Doctrine issues | EntityManager not cleared, long-held transactions |
| CP-09 | Worker stale conn | Long-running worker without connection refresh |
| CP-10 | HTTP no pooling | file_get_contents in loop, no keep-alive headers |
Grep Patterns
# New connection in loops
Grep: "foreach.*\{[^}]*new PDO|while.*\{[^}]*new PDO" --glob "**/*.php" --multiline
# Missing connection close
Grep: "new Redis\(\)" --glob "**/*.php"
# Persistent connections
Grep: "ATTR_PERSISTENT" --glob "**/*.php"
# Connection without timeout
Grep: "new PDO\s*\([^)]+\)\s*;" --glob "**/*.php"
# Static connection storage
Grep: "static.*PDO|static.*connection" --glob "**/*.php"
Severity Classification
| Pattern | Severity |
|---|---|
| Connection in loop | Critical |
| Connection leak (no finally) | Critical |
| No connection timeout | Major |
| Pool exhaustion risk | Major |
| Missing connection health check | Major |
| Persistent connection misuse | Minor |
| Static connection storage | Minor |
Output Format
### Connection Pool: [Description]
**Severity:** Critical/Major/Minor
**Location:** `file.php:line`
**Impact:** [Database overload, connection exhaustion, memory leak]
**Issue:**
[Description of the connection management problem]
**Code:**
[Problematic code snippet]
**Fix:**
[Proper connection management code]
**Expected Improvement:**
- Connection count: 100 -> 10 (pooled)
- Memory usage: -50% (connections reused)
- DB load: -80% (connection overhead eliminated)
References
references/patterns.md— detailed detection patterns with code examples, secure pool implementations, health check and worker refresh patterns
More from dykyi-roman/awesome-claude-code
psr-overview-knowledge
PHP Standards Recommendations (PSR) overview knowledge base. Provides comprehensive reference for all accepted PSRs including PSR-1,3,4,6,7,11,12,13,14,15,16,17,18,20. Use for PSR selection decisions and compliance audits.
22detect-code-smells
Detects code smells in PHP codebases. Identifies God Class, Feature Envy, Data Clumps, Long Parameter List, Long Method, Primitive Obsession, Message Chains, Inappropriate Intimacy. Generates actionable reports with refactoring recommendations.
15clean-arch-knowledge
Clean Architecture knowledge base. Provides patterns, antipatterns, and PHP-specific guidelines for Clean Architecture and Hexagonal Architecture audits.
15ddd-knowledge
DDD architecture knowledge base. Provides patterns, antipatterns, and PHP-specific guidelines for Domain-Driven Design audits.
14testing-knowledge
Testing knowledge base for PHP 8.4 projects. Provides testing pyramid, AAA pattern, naming conventions, isolation principles, DDD testing guidelines, and PHPUnit patterns.
12bug-root-cause-finder
Root cause analysis methods for PHP bugs. Provides 5 Whys technique, fault tree analysis, git bisect guidance, and stack trace parsing.
12