Help us improve
Share bugs, ideas, or general feedback.
From php-development-assistant
Modern PHP programming skill - master PHP 8.x syntax, OOP, type system, and Composer
npx claudepluginhub pluginagentmarketplace/custom-plugin-php --plugin php-assistantHow this skill is triggered — by the user, by Claude, or both
Slash command
/php-development-assistant:skills/php-fundamentalsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Atomic skill for mastering modern PHP programming fundamentals
Guides modern PHP 8.x development with type system, constructor promotion, enums, attributes, null safety, OOP patterns, Handler/Service, Map/DTO, PDO access, Composer, error handling, PHPUnit testing, arrays, and security.
Generates idiomatic PHP 8+ code using generators, iterators, SPL data structures, and modern OOP features for memory-efficient, high-performance applications.
Step-by-step PHP version upgrade playbook covering 8.0 through 8.4+ with automated tooling. Guides users through auditing, running Rector, fixing deprecations, and testing.
Share bugs, ideas, or general feedback.
Atomic skill for mastering modern PHP programming fundamentals
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.
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:
topic:
required: true
allowed: [syntax, oop, type-system, php8-features, composer, standards]
level:
required: true
allowed: [beginner, intermediate, advanced]
php_version:
default: "8.3"
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
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]
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
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
errors:
INVALID_TOPIC:
code: "SKILL_001"
recovery: "Display available topics"
VERSION_MISMATCH:
code: "SKILL_002"
recovery: "Suggest minimum version or alternative"
retry:
max_attempts: 3
backoff:
type: exponential
initial_delay_ms: 100
max_delay_ms: 2000
multiplier: 2
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]
<?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',
};
<?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,
) {}
}
<?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;
}
}
<?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));
}
}
| 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 |
| Metric | Target |
|---|---|
| Code example accuracy | 100% |
| PHP version correctness | 100% |
| PSR-12 compliance | 100% |
Skill("php-fundamentals", {topic: "oop", level: "intermediate"})