PHP Modern Standards
Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com, +256 784 464178.
Use When
- Modern PHP development standards for maintainable, testable, object-oriented code. Use when writing PHP 8+ applications, implementing OOP patterns, ensuring security, following PSR standards, optimizing performance, or building Laravel...
Workflow
- For long-lived PHP application work, load
references/world-class-php-oop-clean-architecture.md before designing controllers, services, repositories, or domain objects.
- For containerized PHP work, pair with
docker-development.
Evidence Produced
| Category |
Artifact |
Format |
Example |
| Correctness |
PHP test plan |
Markdown doc per skill-composition-standards/references/test-plan-template.md covering unit, integration, and contract tests |
docs/php/test-plan-checkout.md |
| Operability |
PHP-FPM operations note |
Markdown doc covering opcache, request lifecycle, and OPcache reset procedure |
docs/php/fpm-ops-note.md |
References
- Use the
references/ directory for deep detail after reading the core workflow below.
- Use the
examples/ directory for concrete patterns when implementation shape matters.
Production-grade PHP patterns for maintainable, testable, secure, high-performance applications.
Core Principle: Write type-safe, secure, performant PHP code following PSR standards with modern PHP 8+ features.
References:
references/performance-efficiency.md — generators, OPcache, profiling, Fibers deep dive
references/code-quality-tooling.md — PHPStan, Pint config, CI/CD patterns
references/rate-limiting.md — rate limiting patterns
references/message-queues.md — queue patterns
references/cache-invalidation.md — cache invalidation patterns
references/resilience-patterns.md — circuit breakers, retries
references/restful-api-patterns.md — cURL client, Attribute routing, JWT, API versioning, testing
references/database-orm-patterns.md — PDO, QueryBuilder, Active Record Model, soft delete, ORM concepts
references/attack-prevention.md — SQL injection, XSS, CSRF, CSP, brute force, least privilege
references/world-class-php-oop-clean-architecture.md — PHP 8 OOP, SOLID, clean architecture, repositories, adapters, and framework-independent domain rules
references/source-register-dev-engine.md — local EPUB sources used for this development-engine upgrade
references/php-security.md - absorbed PHP-specific security hardening, sessions, validation, crypto, upload, and deployment guidance
references/php-vs-nextjs.md - absorbed PHP vs Next.js architecture decision guidance
references/javascript-php-integration.md - absorbed integration patterns for PHP-rendered pages and JavaScript modules
Examples: examples/modern-php-patterns.php, examples/laravel-patterns.php
Security: Load references/php-security.md for comprehensive security patterns.
Use for PHP 8+, OOP, security, testing, performance, and Laravel; do not use for legacy PHP below 7.4 or WordPress-specific work.
File Structure
<?php
declare(strict_types=1);
namespace App\Domain\User;
use App\Domain\Shared\ValueObject;
final readonly class User
{
public function __construct(
private int $id,
private string $email,
) {
}
}
Rules: Always declare(strict_types=1), one class per file, namespace = directory, import all dependencies.
Cross-Platform File Naming (MANDATORY)
Code runs on Windows (dev), Ubuntu (staging), and Debian (production). Linux is case-sensitive:
- Class files: PascalCase matching class name (
StaffService.php)
- Config dirs: lowercase (
src/config/, src/lang/)
- Module dirs: PascalCase matching namespace (
src/HR/Services/)
- require/include: Must match EXACT case on disk
- Paths: Use
/ (forward slash). Never hardcode C:\. Use sys_get_temp_dir() for temp files.
Additional Guidance
Extended guidance for php-modern-standards was moved to references/skill-deep-dive.md to keep this entrypoint compact and fast to load.
PHP DevOps Runtime Discipline
When PHP work affects deployment, Docker, or production operations, pair this skill with docker-development and deployment-release-engineering, then apply the PHP delivery notes in ../deployment-release-engineering/references/devops-book-patterns.md:
- keep Composer lockfiles and dependency installation reproducible;
- run static analysis, coding standards, and tests in CI before packaging;
- manage
.env and secrets outside version control;
- document PHP-FPM pool settings, OPcache reset or warm-up, queue worker restart, cache clear/warm, and file-permission steps;
- include database migration order, backup, verification queries, and rollback or compensating actions;
- verify server updates, unattended security updates, web server config, and backup/restore for uploaded files.
Use that deep dive for:
Type System
Modern Features
Performance
SOLID Principles
Control Flow
Security (Essentials)
Testing
Laravel Conventions
Code Quality Tooling
PSR Standards
Anti-Patterns
Checklist
Decision Rules
| Condition |
Action |
| Boundary accepts external data |
Validate into typed input before domain logic |
| Framework convention is secure and testable |
Prefer it over a custom abstraction |
| Change affects persistence or queues |
Define transaction, retry, and idempotency behaviour |
Degraded Mode
Fallback: without execution, provide exact Composer, static-analysis, and test commands. Do not assume framework support without dependency metadata.
Domain Anti-Patterns
- Concatenating user input into SQL.
- Hiding domain behaviour in controllers.
- Catching
Throwable without recovery policy.
- Adding mutable service-locator dependencies.
- Claiming compatibility without checking Composer constraints.
Inputs
| Artefact |
Required? |
Purpose |
| PHP version, framework, code, and repository standards |
yes |
Apply compatible typing, security, and tooling rules |
Outputs
- Produce PHP code or findings with static-analysis, test, security, and compatibility evidence.
Capability contract
Read/search and local static checks are allowed. Dependency changes, migrations, deployment, and production execution require explicit task authority.
1---2name: php-modern-standards3description: Use when writing or reviewing PHP 8+ applications, object-oriented domain code, Laravel services, PSR-compliant packages, secure request handling, tests, or performance-sensitive PHP.4metadata:5 portable: true6 compatible_with:7 - claude-code8 - codex9---1011# PHP Modern Standards12Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com, +256 784 464178.1314<!-- dual-compat-start -->15## Use When1617- Modern PHP development standards for maintainable, testable, object-oriented code. Use when writing PHP 8+ applications, implementing OOP patterns, ensuring security, following PSR standards, optimizing performance, or building Laravel...1819## Workflow2021- For long-lived PHP application work, load `references/world-class-php-oop-clean-architecture.md` before designing controllers, services, repositories, or domain objects.22- For containerized PHP work, pair with `docker-development`.2324## Evidence Produced2526| Category | Artifact | Format | Example |27|----------|----------|--------|---------|28| Correctness | PHP test plan | Markdown doc per `skill-composition-standards/references/test-plan-template.md` covering unit, integration, and contract tests | `docs/php/test-plan-checkout.md` |29| Operability | PHP-FPM operations note | Markdown doc covering opcache, request lifecycle, and OPcache reset procedure | `docs/php/fpm-ops-note.md` |3031## References3233- Use the `references/` directory for deep detail after reading the core workflow below.34- Use the `examples/` directory for concrete patterns when implementation shape matters.35<!-- dual-compat-end -->36Production-grade PHP patterns for maintainable, testable, secure, high-performance applications.3738**Core Principle:** Write type-safe, secure, performant PHP code following PSR standards with modern PHP 8+ features.3940**References:**41- `references/performance-efficiency.md` — generators, OPcache, profiling, Fibers deep dive42- `references/code-quality-tooling.md` — PHPStan, Pint config, CI/CD patterns43- `references/rate-limiting.md` — rate limiting patterns44- `references/message-queues.md` — queue patterns45- `references/cache-invalidation.md` — cache invalidation patterns46- `references/resilience-patterns.md` — circuit breakers, retries47- `references/restful-api-patterns.md` — cURL client, Attribute routing, JWT, API versioning, testing48- `references/database-orm-patterns.md` — PDO, QueryBuilder, Active Record Model, soft delete, ORM concepts49- `references/attack-prevention.md` — SQL injection, XSS, CSRF, CSP, brute force, least privilege50- `references/world-class-php-oop-clean-architecture.md` — PHP 8 OOP, SOLID, clean architecture, repositories, adapters, and framework-independent domain rules51- `references/source-register-dev-engine.md` — local EPUB sources used for this development-engine upgrade52- `references/php-security.md` - absorbed PHP-specific security hardening, sessions, validation, crypto, upload, and deployment guidance53- `references/php-vs-nextjs.md` - absorbed PHP vs Next.js architecture decision guidance54- `references/javascript-php-integration.md` - absorbed integration patterns for PHP-rendered pages and JavaScript modules55**Examples:** `examples/modern-php-patterns.php`, `examples/laravel-patterns.php`56**Security:** Load `references/php-security.md` for comprehensive security patterns.5758- Use for PHP 8+, OOP, security, testing, performance, and Laravel; do not use for legacy PHP below 7.4 or WordPress-specific work.5960---6162## File Structure6364```php65<?php6667declare(strict_types=1);6869namespace App\Domain\User;7071use App\Domain\Shared\ValueObject;7273final readonly class User74{75 public function __construct(76 private int $id,77 private string $email,78 ) {79 }80}81```8283**Rules:** Always `declare(strict_types=1)`, one class per file, namespace = directory, import all dependencies.8485### Cross-Platform File Naming (MANDATORY)8687Code runs on Windows (dev), Ubuntu (staging), and Debian (production). Linux is case-sensitive:8889- **Class files:** PascalCase matching class name (`StaffService.php`)90- **Config dirs:** lowercase (`src/config/`, `src/lang/`)91- **Module dirs:** PascalCase matching namespace (`src/HR/Services/`)92- **require/include:** Must match EXACT case on disk93- **Paths:** Use `/` (forward slash). Never hardcode `C:\`. Use `sys_get_temp_dir()` for temp files.9495---9697## Additional Guidance9899Extended guidance for `php-modern-standards` was moved to [references/skill-deep-dive.md](references/skill-deep-dive.md) to keep this entrypoint compact and fast to load.100101### PHP DevOps Runtime Discipline102103When PHP work affects deployment, Docker, or production operations, pair this skill with `docker-development` and `deployment-release-engineering`, then apply the PHP delivery notes in `../deployment-release-engineering/references/devops-book-patterns.md`:104105- keep Composer lockfiles and dependency installation reproducible;106- run static analysis, coding standards, and tests in CI before packaging;107- manage `.env` and secrets outside version control;108- document PHP-FPM pool settings, OPcache reset or warm-up, queue worker restart, cache clear/warm, and file-permission steps;109- include database migration order, backup, verification queries, and rollback or compensating actions;110- verify server updates, unattended security updates, web server config, and backup/restore for uploaded files.111112Use that deep dive for:113- `Type System`114- `Modern Features`115- `Performance`116- `SOLID Principles`117- `Control Flow`118- `Security (Essentials)`119- `Testing`120- `Laravel Conventions`121- `Code Quality Tooling`122- `PSR Standards`123- `Anti-Patterns`124- `Checklist`125126## Decision Rules127128| Condition | Action |129|---|---|130| Boundary accepts external data | Validate into typed input before domain logic |131| Framework convention is secure and testable | Prefer it over a custom abstraction |132| Change affects persistence or queues | Define transaction, retry, and idempotency behaviour |133134## Degraded Mode135136Fallback: without execution, provide exact Composer, static-analysis, and test commands. Do not assume framework support without dependency metadata.137138## Domain Anti-Patterns139140- Concatenating user input into SQL.141- Hiding domain behaviour in controllers.142- Catching `Throwable` without recovery policy.143- Adding mutable service-locator dependencies.144- Claiming compatibility without checking Composer constraints.145## Inputs146| Artefact | Required? | Purpose |147|---|---|---|148| PHP version, framework, code, and repository standards | yes | Apply compatible typing, security, and tooling rules |149## Outputs150- Produce PHP code or findings with static-analysis, test, security, and compatibility evidence.151## Capability contract152Read/search and local static checks are allowed. Dependency changes, migrations, deployment, and production execution require explicit task authority.