php-fundamentals

majiayu000's avatarfrom majiayu000

Modern PHP programming skill - master PHP 8.x syntax, OOP, type system, and Composer

5stars🔀1forks📁View on GitHub🕐Updated Jan 11, 2026

When & Why to Use This Skill

This Claude skill provides a comprehensive and structured learning environment for mastering modern PHP development. It covers the full spectrum of PHP 8.x features, including advanced syntax, Object-Oriented Programming (OOP) principles, the robust type system, and essential dependency management with Composer. Designed for progressive learning, it combines theoretical knowledge with hands-on exercises to help developers build high-quality, PSR-compliant applications.

Use Cases

  • Mastering PHP 8.4 Features: Learn and implement the latest language enhancements such as property hooks, asymmetric visibility, and typed class constants.
  • Object-Oriented Design: Practice building scalable architectures using inheritance, polymorphism, interfaces, and SOLID principles through guided exercises.
  • Modernizing Legacy Codebases: Use the skill as a reference to refactor older PHP code into modern, type-safe, and performant syntax.
  • Dependency Management: Gain proficiency in using Composer for project initialization, library management, and PSR-4 autoloading optimization.
  • Technical Interview Preparation: Sharpen coding skills with structured modules covering everything from basic control structures to advanced design patterns and DI containers.
namephp-fundamentals
version"2.0.0"
descriptionModern PHP programming skill - master PHP 8.x syntax, OOP, type system, and Composer
sasmp_version"1.3.0"
bonded_agent01-php-fundamentals
bond_typePRIMARY_BOND
atomictrue
categorylanguage-core

PHP Fundamentals Skill

Atomic skill for mastering modern PHP programming fundamentals

Overview

This skill provides comprehensive training in modern PHP development, from basic syntax to advanced PHP 8.4 features. Designed for progressive learning with hands-on exercises.

Skill Parameters

Input Validation

interface SkillParams {
  topic:
    | "syntax"           // Variables, operators, control structures
    | "oop"              // Classes, interfaces, traits
    | "type-system"      // Type declarations, unions, intersections
    | "php8-features"    // Modern PHP 8.x features
    | "composer"         // Dependency management
    | "standards";       // PSR compliance

  level: "beginner" | "intermediate" | "advanced";
  php_version?: "8.0" | "8.1" | "8.2" | "8.3" | "8.4";
  output_format?: "tutorial" | "reference" | "exercises";
}

Validation Rules

validation:
  topic:
    required: true
    allowed: [syntax, oop, type-system, php8-features, composer, standards]
  level:
    required: true
    allowed: [beginner, intermediate, advanced]
  php_version:
    default: "8.3"

Learning Modules

Module 1: PHP Syntax Fundamentals

topics:
  - Variables and data types
  - Operators and expressions
  - Control structures (if, switch, match)
  - Loops (for, foreach, while)
  - Functions and closures
  - Error handling basics

exercises:
  - Build a calculator function
  - Create array manipulation utilities
  - Implement string processing functions

duration: 8-12 hours
prerequisites: none

Module 2: Object-Oriented Programming

topics:
  - Classes and objects
  - Properties and methods
  - Inheritance and polymorphism
  - Interfaces and abstract classes
  - Traits and composition
  - SOLID principles

exercises:
  - Design a Shape hierarchy
  - Implement Repository pattern
  - Build a simple DI container

duration: 15-20 hours
prerequisites: [syntax]

Module 3: PHP 8.x Modern Features

topics:
  php_8_0:
    - Named arguments
    - Constructor property promotion
    - Match expressions
    - Nullsafe operator
    - Attributes
    - Union types

  php_8_1:
    - Enums
    - Readonly properties
    - Fibers
    - Intersection types

  php_8_2:
    - Readonly classes
    - DNF types

  php_8_3:
    - Typed class constants
    - json_validate()
    - "#[Override]" attribute

  php_8_4:
    - Property hooks
    - Asymmetric visibility

duration: 10-15 hours

Execution Flow

graph TD
    A[Skill Invoked] --> B{Valid Parameters?}
    B -->|No| C[Return Validation Error]
    B -->|Yes| D[Load Module Content]
    D --> E{Level?}
    E -->|Beginner| F[Basic Concepts + Examples]
    E -->|Intermediate| G[Patterns + Exercises]
    E -->|Advanced| H[Deep Dive + Best Practices]
    F --> I[Generate Response]
    G --> I
    H --> I

Error Handling & Retry Logic

Error Categories

errors:
  INVALID_TOPIC:
    code: "SKILL_001"
    recovery: "Display available topics"

  VERSION_MISMATCH:
    code: "SKILL_002"
    recovery: "Suggest minimum version or alternative"

Retry Strategy

retry:
  max_attempts: 3
  backoff:
    type: exponential
    initial_delay_ms: 100
    max_delay_ms: 2000
    multiplier: 2

Logging & Observability

Event Hooks

hooks:
  on_skill_start: [log_invocation, track_topic]
  on_module_complete: [update_progress, award_badge]
  on_error: [log_error, suggest_recovery]
  on_skill_complete: [recommend_next_skill]

Code Examples

Beginner: Basic Syntax

<?php
declare(strict_types=1);

// Variables and types
$name = 'PHP Developer';
$version = 8.3;

// Match expression (PHP 8.0+)
$status = match($code) {
    200 => 'OK',
    404 => 'Not Found',
    default => 'Unknown',
};

Intermediate: OOP Patterns

<?php
declare(strict_types=1);

// Constructor property promotion (PHP 8.0+)
final readonly class User
{
    public function __construct(
        public int $id,
        public string $email,
        public string $name,
    ) {}
}

Advanced: PHP 8.4 Features

<?php
declare(strict_types=1);

// Property hooks (PHP 8.4+)
class Temperature
{
    public float $celsius {
        get => $this->celsius;
        set => $value >= -273.15 ? $value : throw new \InvalidArgumentException();
    }

    public float $fahrenheit {
        get => $this->celsius * 9/5 + 32;
        set => $this->celsius = ($value - 32) * 5/9;
    }
}

Test Templates

<?php
declare(strict_types=1);

use PHPUnit\Framework\TestCase;
use PHPUnit\Framework\Attributes\Test;

final class CalculatorTest extends TestCase
{
    #[Test]
    public function it_adds_two_numbers(): void
    {
        $calculator = new Calculator();
        $this->assertSame(5, $calculator->add(2, 3));
    }
}

Troubleshooting

Common Issues

Problem Cause Solution
Type errors Strict types + wrong type Check function signature, cast values
Autoloading failures PSR-4 mismatch Verify namespace, run composer dump-autoload
Deprecated features Old PHP patterns Update to modern syntax

Quality Metrics

Metric Target
Code example accuracy 100%
PHP version correctness 100%
PSR-12 compliance 100%

Usage

Skill("php-fundamentals", {topic: "oop", level: "intermediate"})