본문으로 건너뛰기
cccskills
무료GitHub에 공개

php-service

Use when the user says 'create service', 'new service class', or needs a PHP service following SOLID principles with proper DI and repository usage.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md3.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

php-service

When to use

Use when creating a new service, extracting business logic from a controller, or refactoring into a service layer.

Do NOT use when:

  • Controllers (use laravel skill)
  • DTOs (use laravel-dto skill for Laravel/PHP; framework-native skill for other stacks)
  • Models (use eloquent skill)

When to create a service

✅ Multiple steps needing orchestration (save + calculate + notify) ✅ Business rules beyond FormRequest ✅ Logic reused across controllers, jobs, commands ✅ Complex calculations or transformations

❌ Simple CRUD — $model->update($request->validated()) stays in controller ❌ One-liner logic — no class for a single Eloquent call

Procedure: Create a service

Step 0: Inspect

  1. Read ./agents/ and AGENTS.md for service conventions.
  2. Check existing services — match naming, structure, DI patterns.
  3. Check for repositories — see php/patterns/repositories.md guideline.

Step 1: Create the class

  1. Location: app/Services/{Domain}/ or app/Modules/{Module}/App/Services/.
  2. declare(strict_types=1), proper namespace.
  3. Constructor inject dependencies (repositories, other services).
  4. Max 4 constructor dependencies — if more, split the service.

Step 2: Implement methods

  1. One responsibility per method.
  2. Delegate data access to repositories.
  3. Use DTOs for structured data.
  4. Use Math helper for calculations — never raw arithmetic.

Step 3: Wire up

// Controller
public function __invoke(
    UpdateProjectRequest $request,
    Project $project,
    ProjectService $projectService,
): ProjectResource {
    $dto = UpdateProjectDTO::fromRequest($request);
    return ProjectResource::make($projectService->update($project, $dto));
}

Conventions

→ See guideline php/patterns/service-layer.md for full service layer conventions.

Validate

  • Run PHPStan on the service — must pass at level 9.
  • Verify single responsibility: service does one thing, no mixed concerns.
  • Confirm all dependencies are constructor-injected (no app() or facades in service).
  • Run affected tests — must pass.

Output format

  1. Service class with constructor injection and single responsibility
  2. Repository dependency if data access is needed

Gotcha

  • Don't create "god services" with 10+ methods — split by responsibility.
  • Don't inject Request into services — pass specific data.
  • Services are framework-agnostic — no HTTP/request logic.

Do NOT

  • Do NOT inject Request or Controller into services — services are framework-agnostic.
  • Do NOT create services with more than one responsibility — split them.

Auto-trigger keywords

  • service class
  • business logic
  • service layer
  • dependency injection

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

event4u-app의 스킬 모두 보기

이 스킬의 문제 신고