PHP Language Standards
Priority: P0 (CRITICAL)
Structure
src/
└── {Namespace}/
└── {Class}.php
Implementation Guidelines
Core Language Standards
- Strict Typing: Declare
declare(strict_types=1);at the very top of every file. - Type Hinting: Apply scalar type hints (e.g.,
string,int) and return types to all functions. - Strict Comparison: Avoid loose
==comparison; always use===for strict equality.
Modern PHP 8+ Patterns
- Match Expressions: Prefer
match($status)overswitchfor value returns. It provides strict comparison and is exhaustive by default. - Default Case: Use
default => throw new InvalidArgumentException($status)to handle unknown states. - Read-only: Use
public readonly string $namefor properties set once at construction. - Property Promotion: Use
public function __construct(public string $name) {}to reduce boilerplate. - Named Arguments: Call functions with
name: 'John', age: 25to skip optional parameters. - Flexible Types: Use Union types (
int|string) and Intersection types (Countable&Traversable).
Anti-Patterns
- No untyped functions: Declare return and parameter types always.
- No loose
==comparison: Use===for strict equality. - No
switchfor value mapping: Usematchexpressions instead. - No global namespace logic: Organize in classes and namespaces.