PHP Skill
SkillAI & modelsPHP development: code quality, PSR standards, testing with PHPUnit.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the PHP Skill skill
What this skill tells your AI
The instructions your AI receives, as published by notque/vexjoy-agent in skills/engineering/php/SKILL.md and read by ahel’s review.
PHP code quality and testing: strict types, PSR-12 compliance, modern language features, framework idioms, static analysis tooling, and PHPUnit testing patterns.
Reference Loading Table
| Signal | Reference | Size |
|---|---|---|
| union types, intersection types, DNF, enums, readonly, named arguments, match expression, null-safe operator, PHP 8.0, PHP 8.1, PHP 8.2 | references/modern-php-features.md | ~160 lines |
| Laravel, Eloquent, Collections, Service Container, Symfony, DI attributes, Event Dispatcher, framework | references/framework-idioms.md | ~70 lines |
| PHP-CS-Fixer, PHPStan, Psalm, Rector, static analysis, CI, linting, code style, taint analysis | references/quality-tools.md | ~60 lines |
| PHPUnit tests, data providers, mocks, stubs, database testing, HTTP testing, coverage | references/testing-patterns.md | ~120 lines |
| quality review process, phases, PSR-12 enforcement | references/php-quality.md | ~60 lines |
| test writing process, test doubles, Prophecy, database fixtures | references/php-testing.md | ~50 lines |
Loading rule. Read the references whose signals match the task before responding.
Core Rules (Always Apply)
Strict Types Declaration
Every PHP file must begin with declare(strict_types=1). This enforces scalar type coercion rules, catching type errors at call time instead of silently converting values. Omitting it is a code quality defect.
PSR-12 Coding Standard
PSR-12 extends PSR-1 and PSR-2 as the accepted PHP coding style:
- 4-space indentation, no trailing whitespace
- One class per file
usestatements after namespace with a blank line before and after- Visibility required on all properties, methods, and constants
- Opening braces on same line for control structures
- Opening braces on next line for classes and methods
Phase 1: ASSESS
Determine what kind of PHP work is needed:
| Request type | Load references | Action |
|---|---|---|
| Code review | quality refs + quality-tools | Full quality pass |
| Type system question | modern-php-features | Feature-specific guidance |
| Framework patterns | framework-idioms | Idiomatic pattern review |
| Tooling setup | quality-tools | Config and CI guidance |
| Write tests | testing-patterns + php-testing | PHPUnit test authoring |
| Test review | testing-patterns | Test quality review |
Gate: Request classified and relevant references loaded.
Phase 2: EXECUTE
Apply loaded reference knowledge to the user's code or question.
For quality reviews, check:
declare(strict_types=1)present- PSR-12 compliance
- Modern PHP features used where appropriate
- Framework idioms followed (if applicable)
- Quality tooling configured (if applicable)
For testing work:
- Use PHPUnit
TestCasewithtestprefix or@testannotation - Use
@dataProviderfor table-driven cases - Use
createStub()for return values,createMock()for interaction assertions - Use
DatabaseTransactions(Laravel) orKernelTestCase(Symfony) for database tests - Call
parent::setUp()first in everysetUp()method
Gate: Specific, reference-backed feedback or code provided.
Phase 3: VERIFY
Run the test suite and confirm:
./vendor/bin/phpunit
# For coverage enforcement:
XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text --coverage-min=80
Gate: All tests pass. Coverage threshold met if configured.
Signals
- GitHub stars
- 419
- Forks
- 44
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
php-notque- Source
- github.com/notque/vexjoy-agent