Php language
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/php-language
Core PHP language standards and modern 8.x features. Use when working with PHP 8.x features like enums, fibers, readonly properties, or named arguments. (triggers: **/*.php, declare, readonly, match, constructor, promotion, types)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill php-languageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
1.8 KB, 371 tokens by cl100k_base, as published. Nobody here has run it
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.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.