К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

php-pro — скилл для Claude Code: что делает и как установить

Задаёт правила разработки на PHP 8.3+ для Laravel и Symfony: включает strict_types, анализ в PHPStan на уровне 9 и тесты PHPUnit или Pest.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Jeffallan/claude-skills --skill php-pro -a claude-code
Открыть на GitHub

Что делает php-pro

Скилл настраивает ассистента на генерацию строго типизированного PHP-кода под требования PSR-12. Модель выстраивает архитектуру по чёткой цепочке: сначала создаются сущности и DTO, затем сервисы с внедрением зависимостей через конструктор, контроллеры и тесты.

В рабочий процесс встроена жёсткая проверка качества. Перед сдачей кода запускается статический анализ командой vendor/bin/phpstan analyse --level=9, где должны быть устранены все ошибки, а также тесты через phpunit или pest с покрытием от 80%.

Требование девятого уровня PHPStan означает, что генерация кода без явных типов или с типом mixed сразу заблокирует выполнение задачи. Правила также учитывают работу с Laravel 11, Symfony 7 и асинхронный стек на Swoole и ReactPHP.

Какие задачи решает

  • создать строго типизированные DTO и value objects для PHP 8.3+
  • настроить сервисный слой с dependency injection для Laravel или Symfony
  • пройти проверку PHPStan на девятом уровне без ошибок
  • написать тесты на PHPUnit или Pest с покрытием от 80%

Примеры запросов агенту

  • Сгенерируй сервис регистрации пользователя и DTO для Laravel с тестами на Pest
  • Создай контроллер API в Symfony 7 с валидацией запроса и строгой типизацией
  • Проверь этот класс через PHPStan level 9 и добавь readonly свойства

Как установить php-pro

1Через Skills CLI (Vercel)

npx skills add Jeffallan/claude-skills --skill php-pro -a claude-code

2Вручную: положить файлы

~/.claude/skills/php-pro/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/php-pro/

Из того же набора5

Весь набор →
laravel-specialist https://github.com/Jeffallan Настраивает агента на разработку бэкенда на Laravel 10+ и PHP 8.2+. Помогает писать модели Eloquent, очереди Horizon, API resources и тесты Pest. Claude Code CX Codex Cursor +1 23 300установок golang-pro https://github.com/Jeffallan Скилл помогает писать идиоматичный Go: разбирать конкурентный код, строить микросервисы и проверять производительность. Пригодится для goroutines, gRPC и тестов. Claude Code CX Codex Cursor +1 18 900установок flutter-expert https://github.com/Jeffallan Скилл для разработки кросс-платформных приложений на Flutter 3+ и Dart. Помогает с виджетами, управлением состоянием через Riverpod или Bloc, маршрутизацией GoRouter и оптимизацией производительности. Claude Code CX Codex Cursor +1 14 300установок typescript-pro https://github.com/Jeffallan Настраивает строгую типизацию TypeScript, генерирует брендированные типы и связывает tRPC. Пригодится при проектировании надёжных API и сложных generic-структур. Claude Code CX Codex Cursor +1 14 200установок

Похожие

microservices-patterns Seth Hobson Помогает проектировать микросервисные системы: выделять границы сервисов, выбирать обмен сообщениями и добавлять паттерны устойчивости. Claude Code CX Codex Cursor 13 176установок golang-uber-fx samber Скилл для работы с uber-go/fx — фреймворком зависимостей с lifecycle-хуками, модульной системой и graceful shutdown. Пригодится, если в проекте уже используется fx или вы переходите на него для long-running сервисов. Claude Code CX Codex Cursor +1 36 500установок langchain-architecture Seth Hobson Скилл помогает проектировать LLM-приложения на LangChain 1.x и LangGraph: агентов, память, состояние и вызов инструментов. Нужен для сложных AI-воркфлоу. Claude Code CX Codex Cursor 13 150установок protocol-reverse-engineering Dávid Balatoni Скилл помогает разбирать сетевой трафик, находить структуру протоколов и оформлять спецификацию. Подойдёт для отладки и анализа проприетарных протоколов. Claude Code CX Codex Cursor 12 701установок python-type-safety Seth Hobson Помогает добавлять типы в Python-код, писать дженерики и протоколы, а также настраивать строгую проверку через mypy или pyright. Claude Code CX Codex Cursor 12 643установок workflow-orchestration-patterns Seth Hobson Скилл помогает проектировать долгие и распределённые процессы на Temporal: разделять workflow и activity, сохранять состояние и восстанавливаться после сбоев. Claude Code CX Codex Cursor 12 053установок mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. Claude Code Claude.ai 130 949установок google-agents-cli-adk-code официальный Google Скилл даёт примеры и справку по Agent Development Kit: агентам, инструментам, колбэкам, состоянию и графовым workflow. Нужен при написании кода. Claude Code CX Codex Cursor +1 511 400установок

Вопросы о php-pro

Как установить php-pro в Claude Code?

Выполните команду npx skills add Jeffallan/claude-skills --skill php-pro -a claude-code. Также можно вручную сохранить файл навыка по пути ~/.claude/skills/php-pro/SKILL.md.

Что делает скилл php-pro?

Он заставляет ИИ писать код на PHP 8.3+ с обязательным объявлением declare(strict_types=1), соответствием стандарту PSR-12, внедрением зависимостей и тестами.

Какие проверки запускает php-pro перед сдачей кода?

Скилл требует выполнения команды vendor/bin/phpstan analyse --level=9 без ошибок и прогона тестов phpunit или pest с покрытием кода не менее 80%.

Исходный текст

SKILL.md · MIT
---
name: php-pro
description: Use when building PHP applications with modern PHP 8.3+ features, Laravel, or Symfony frameworks. Invokes strict typing, PHPStan level 9, async patterns with Swoole, and PSR standards. Creates controllers, configures middleware, generates migrations, writes PHPUnit/Pest tests, defines typed DTOs and value objects, sets up dependency injection, and scaffolds REST/GraphQL APIs. Use when working with Eloquent, Doctrine, Composer, Psalm, ReactPHP, or any PHP API development.
license: MIT
metadata:
  author: https://github.com/Jeffallan
  company: https://synergetic.solutions
  version: "1.1.0"
  domain: language
  triggers: PHP, Laravel, Symfony, Composer, PHPStan, PSR, PHP API, Eloquent, Doctrine
  role: specialist
  scope: implementation
  output-format: code
  related-skills: fullstack-guardian, fastapi-expert
---

# PHP Pro

Senior PHP developer with deep expertise in PHP 8.3+, Laravel, Symfony, and modern PHP patterns with strict typing and enterprise architecture.

## Core Workflow

1. **Analyze architecture** — Review framework, PHP version, dependencies, and patterns
2. **Design models** — Create typed domain models, value objects, DTOs
3. **Implement** — Write strict-typed code with PSR compliance, DI, repositories
4. **Secure** — Add validation, authentication, XSS/SQL injection protection
5. **Verify** — Run `vendor/bin/phpstan analyse --level=9`; fix all errors before proceeding. Run `vendor/bin/phpunit` or `vendor/bin/pest`; enforce 80%+ coverage. Only deliver when both pass clean.

## Reference Guide

Load detailed guidance based on context:

| Topic | Reference | Load When |
|-------|-----------|-----------|
| Modern PHP | `references/modern-php-features.md` | Readonly, enums, attributes, fibers, types |
| Laravel | `references/laravel-patterns.md` | Services, repositories, resources, jobs |
| Symfony | `references/symfony-patterns.md` | DI, events, commands, voters |
| Async PHP | `references/async-patterns.md` | Swoole, ReactPHP, fibers, streams |
| Testing | `references/testing-quality.md` | PHPUnit, PHPStan, Pest, mocking |

## Constraints

### MUST DO
- Declare strict types (`declare(strict_types=1)`)
- Use type hints for all properties, parameters, returns
- Follow PSR-12 coding standard
- Run PHPStan level 9 before delivery
- Use readonly properties where applicable
- Write PHPDoc blocks for complex logic
- Validate all user input with typed requests
- Use dependency injection over global state

### MUST NOT DO
- Skip type declarations (no mixed types)
- Store passwords in plain text (use bcrypt/argon2)
- Write SQL queries vulnerable to injection
- Mix business logic with controllers
- Hardcode configuration (use .env)
- Deploy without running tests and static analysis
- Use var_dump in production code

## Code Patterns

Every complete implementation delivers: a typed entity/DTO, a service class, and a test. Use these as the baseline structure.

### Readonly DTO / Value Object

```php
<?php

declare(strict_types=1);

namespace App\DTO;

final readonly class CreateUserDTO
{
    public function __construct(
        public string $name,
        public string $email,
        public string $password,
    ) {}

    public static function fromArray(array $data): self
    {
        return new self(
            name: $data['name'],
            email: $data['email'],
            password: $data['password'],
        );
    }
}
```

### Typed Service with Constructor DI

```php
<?php

declare(strict_types=1);

namespace App\Services;

use App\DTO\CreateUserDTO;
use App\Models\User;
use App\Repositories\UserRepositoryInterface;
use Illuminate\Support\Facades\Hash;

final class UserService
{
    public function __construct(
        private readonly UserRepositoryInterface $users,
    ) {}

    public function create(CreateUserDTO $dto): User
    {
        return $this->users->create([
            'name'     => $dto->name,
            'email'    => $dto->email,
            'password' => Hash::make($dto->password),
        ]);
    }
}
```

### PHPUnit Test Structure

```php
<?php

declare(strict_types=1);

namespace Tests\Unit\Services;

use App\DTO\CreateUserDTO;
use App\Models\User;
use App\Repositories\UserRepositoryInterface;
use App\Services\UserService;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;

final class UserServiceTest extends TestCase
{
    private UserRepositoryInterface&MockObject $users;
    private UserService $service;

    protected function setUp(): void
    {
        parent::setUp();
        $this->users   = $this->createMock(UserRepositoryInterface::class);
        $this->service = new UserService($this->users);
    }

    public function testCreateHashesPassword(): void
    {
        $dto  = new CreateUserDTO('Alice', '[email protected]', '<test-password>');
        $user = new User(['name' => 'Alice', 'email' => '[email protected]']);

        $this->users
            ->expects($this->once())
            ->method('create')
            ->willReturn($user);

        $result = $this->service->create($dto);

        $this->assertSame('Alice', $result->name);
    }
}
```

### Enum (PHP 8.1+)

```php
<?php

declare(strict_types=1);

namespace App\Enums;

enum UserStatus: string
{
    case Active   = 'active';
    case Inactive = 'inactive';
    case Banned   = 'banned';

    public function label(): string
    {
        return match($this) {
            self::Active   => 'Active',
            self::Inactive => 'Inactive',
            self::Banned   => 'Banned',
        };
    }
}
```

## Output Templates

When implementing a feature, deliver in this order:
1. Domain models (entities, value objects, enums)
2. Service/repository classes
3. Controller/API endpoints
4. Test files (PHPUnit/Pest)
5. Brief explanation of architecture decisions

## Knowledge Reference

PHP 8.3+, Laravel 11, Symfony 7, Composer, PHPStan, Psalm, PHPUnit, Pest, Eloquent ORM, Doctrine, PSR standards, Swoole, ReactPHP, Redis, MySQL/PostgreSQL, REST/GraphQL APIs

Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)

[Documentation](https://jeffallan.github.io/claude-skills/skills/language/php-pro/)

© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой