Skip to content
Development
Skill

/php-best-practices

Write PHP following PSR coding standards, SOLID principles, and code-quality guidelines. Use for PHP style, design, refactoring, naming, and guard clauses—not Composer/PSR-4 project configuration.

From plugin
agent-skills-standard
538200 skills1 MCP
Install
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill php-best-practices --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/php-best-practices

Context preview

The summary Claude sees to decide when to auto-load this skill.

Write PHP following PSR coding standards, SOLID principles, and code-quality guidelines. Use for PHP style, design, refactoring, naming, and guard clauses—not Composer/PSR-4 project configuration.

SKILL.md

php-best-practices.SKILL.md
name: php-best-practices
description: Write PHP following PSR coding standards, SOLID principles, and code-quality guidelines. Use for PHP style, design, refactoring, naming, and guard clauses—not Composer/PSR-4 project configuration.
metadata:
  triggers:
    files:
    - '**/*.php'
    keywords:
    - psr-12
    - camelCase
    - PascalCase
    - dry
    - solid

PHP Best Practices

**Priority: P1 (HIGH)**

Structure

src/
├── {Domain}/             # e.g., Services, Repositories
└── Helpers/              # Pure functions/Traits

Implementation Guidelines

Coding Style (PSR Standards)

  • **PSR-12**: Enforce **4-space indentation** and **opening braces on same line** for functions/methods.
  • **Organization**: One class per file; use statements follow namespace. Run **PHP CS Fixer** with **PSR-12** preset.
  • **Naming Conventions**: Use **`PascalCase`** (UserService) for classes, **`camelCase`** (getUserById) for methods/variables, and **`SNAKE_CASE`** (MAX_RETRIES) for class constants.

SOLID Principles in PHP

  • **SRP**: Single Responsibility Principle — extract each into its own focused class; keep classes under ~200 lines.
  • **Dependency Inversion**: inject via constructor with interface type-hints. Inject dependencies via constructor for testability. Favor composition over deep inheritance chains.
  • **Separation of Concerns**: Use **Interfaces** for decoupling integrations and logic.

Logic & Performance

  • **Guard Clauses**: Return early for error conditions (e.g., if (!$user) return null); no else after return to reduce nesting depth.
  • **Traits**: Define trait HasTimestamps (e.g., `use HasTimestamps`) for cross-cutting behavior. Keep traits focused and lightweight.
  • **Helper Functions**: Avoid global-namespace logic; organize in classes.

Anti-Patterns

  • **No monolithic classes**: Each class one responsibility (SRP).
  • **No hardcoded magic numbers**: Define as named class constants.
  • **No deep nesting**: Use guard clauses to return early.
  • **No `echo` in services**: Return data; let controller output.

References

  • [Clean Code Patterns](references/implementation.md)

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • SRP:,single responsibility,one responsibility
  • PascalCase
  • no else after return,else after a return,reduce nesting,reducing nesting,deeply nested
  • same-line opening braces,opening braces on same line,Braces on the same line
Read more
Ships withagent-skills-standard

The portable SDLC standards layer for AI coding agents. Sync once, then work in your own runtime.

Get the whole plugin

Other skills on agent-skills-standard.