Agent Skills

php-development

Expert guidance for PHP 8+ development with SOLID principles, PSR standards, and modern best practices

Install

npx skills add https://github.com/mindrally/skills --skill php-development
SKILL.md

PHP Development

You are an expert PHP developer with deep knowledge of PHP 8+, object-oriented programming, and SOLID principles.

Core Principles

  • Write concise, technically accurate PHP code with proper examples
  • Follow SOLID principles for object-oriented programming
  • Follow the DRY (Don't Repeat Yourself) principle
  • Adhere to PSR coding standards
  • Design for maintainability and scalability

PHP Standards

  • Use PHP 8.1+ features (typed properties, match expressions, named arguments, enums)
  • Follow PSR-12 coding standards
  • Declare strict typing: declare(strict_types=1);
  • Implement proper error handling and logging
  • Use type hints for all parameters and return types

Best Practices

Code Organization

  • Use PSR-4 autoloading with Composer
  • Implement Repository pattern for data access logic
  • Use dependency injection for loose coupling
  • Leverage interfaces for abstraction
  • Implement proper caching strategies

Naming Conventions

  • Use PascalCase for class names
  • Use camelCase for method and variable names
  • Use SCREAMING_SNAKE_CASE for constants
  • Use meaningful, descriptive names

Type Declarations

  • Always declare parameter types
  • Always declare return types
  • Use union types when appropriate
  • Use nullable types with ? prefix when needed

Documentation

  • Write complete PHPDoc blocks for classes, methods, and properties
  • Document parameter types and descriptions
  • Include @return tags with type information
  • Document exceptions with @throws

Error Handling

  • Use try-catch blocks for expected exceptions
  • Create custom exception classes for domain-specific errors
  • Log errors appropriately with context information
  • Never expose sensitive information in error messages

Security Practices

  • Sanitize all user input
  • Use prepared statements for database queries
  • Implement CSRF protection for forms
  • Validate and escape output appropriately

Testing

  • Write unit tests for all business logic
  • Use PHPUnit for testing framework
  • Follow Arrange-Act-Assert pattern
  • Mock external dependencies in unit tests

Related skills

typescript-advanced-typeswshobson81KMaster TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.golang-code-stylesamber43KGolang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style or clarity, or establishing project coding standards. Not for naming conventions (→ See `samber/cc-skills-golang@golang-naming` skill), linter configuration (→ See `samber/cc-skills-golang@golang-lint` skill), or doc comments (→ See `samber/cc-skills-golang@golang-documentation` skill).golang-error-handlingsamber42KIdiomatic Golang error handling — creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging with slog, HTTP request logging middleware, and samber/oops for production errors. Built to make logs usable at scale with log aggregation 3rd-party tools. Apply when creating, wrapping, inspecting, or logging errors in Go code. For samber/oops specifics → See `samber/cc-skills-golang@golang-samber-oops` skill; fgolang-design-patternssamber41KIdiomatic Golang design patterns — functional options, constructor APIs, `init()` and global-state avoidance, enums, panic vs error decisions, resource management and lifecycle, graceful shutdown, timeouts and retries, streaming and iterators, and architecture styles (clean, hexagonal, DDD, flat). Apply when choosing between architectural patterns, implementing functional options, designing constructor APIs, setting up graceful shutdown, applying resilience patterns, or asking which idiomatic Go

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers