home / skills / pluginagentmarketplace / custom-plugin-php / php-fundamentals

php-fundamentals skill

/skills/php-fundamentals

This skill helps you master modern PHP fundamentals across syntax, OOP, and PHP 8.x features with practical, hands-on exercises.

npx playbooks add skill pluginagentmarketplace/custom-plugin-php --skill php-fundamentals

Review the files below or copy the command above to add this skill to your agents.

Files (6)
SKILL.md
5.6 KB
---
name: php-fundamentals
version: "2.0.0"
description: Modern PHP programming skill - master PHP 8.x syntax, OOP, type system, and Composer
sasmp_version: "1.3.0"
bonded_agent: 01-php-fundamentals
bond_type: PRIMARY_BOND
atomic: true
category: language-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
```typescript
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
```yaml
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
```yaml
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
```yaml
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
```yaml
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

```mermaid
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
```yaml
errors:
  INVALID_TOPIC:
    code: "SKILL_001"
    recovery: "Display available topics"

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

### Retry Strategy
```yaml
retry:
  max_attempts: 3
  backoff:
    type: exponential
    initial_delay_ms: 100
    max_delay_ms: 2000
    multiplier: 2
```

## Logging & Observability

### Event Hooks
```yaml
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
<?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
<?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
<?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
<?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"})
```

Overview

This skill teaches modern PHP fundamentals, focused on PHP 8.x syntax, OOP, the typed system, and Composer-based workflows. It is structured for progressive learning with hands-on exercises, practical examples, and version-aware guidance. Use it to build reliable, maintainable PHP applications and to upgrade legacy code to modern PHP idioms.

How this skill works

Select a topic (syntax, oop, type-system, php8-features, composer, standards) and a level (beginner, intermediate, advanced). The skill loads targeted modules, returns concise explanations, code examples, and exercises appropriate to the chosen PHP version (default 8.3). It validates inputs, handles version mismatches with recommendations, and offers retryable operations for transient errors.

When to use it

  • Learning PHP 8.x from scratch or refreshing core syntax and control structures
  • Mastering object-oriented patterns, SOLID principles, and dependency injection
  • Adopting the modern PHP type system: union, intersection, readonly, and typed constants
  • Preparing to migrate legacy projects to PHP 8+ or to use new language features safely
  • Setting up Composer-based projects, PSR autoloading, and code style compliance

Best practices

  • Enable strict_types and prefer explicit type declarations for functions and properties
  • Use constructor property promotion and readonly for immutable data objects
  • Prefer small, focused classes and follow SOLID and single-responsibility principles
  • Adopt PSR-12 formatting and PSR-4 autoloading; run composer dump-autoload when needed
  • Write unit tests for core logic and include type-related test cases for edge conditions

Example use cases

  • Beginner: walkthrough of variables, control structures, functions, and basic error handling
  • Intermediate: design a Shape hierarchy, implement repositories, and create a simple DI container
  • Advanced: deep dive into PHP 8.x features (enums, fibers, typed class constants, property hooks)
  • Composer: initialize a package, configure PSR-4 autoloading, and manage dependencies
  • Standards: audit a codebase for PSR compliance and modernize deprecated patterns

FAQ

Which PHP version should I target?

Target the highest PHP version available in your deployment; the skill defaults to 8.3 and provides compatibility notes and fallback suggestions for lower versions.

Does the skill provide exercises and tests?

Yes. Each module includes practical exercises and PHPUnit test templates to validate implementations and reinforce learning.