Generates Application Use Cases for PHP 8.5. Creates orchestration services that coordinate domain objects, handle transactions, and dispatch events. Includes unit tests.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add majiayu000/claude-skill-registry --skill acc-create-use-case --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Acc Create Use Case?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-acc-create-use-case-claude-skill-registry)More formats (shields.io, HTML) on the badges page.
---
name: acc-create-use-case
description: Generates Application Use Cases for PHP 8.5. Creates orchestration services that coordinate domain objects, handle transactions, and dispatch events. Includes unit tests.
---
# Use Case Generator
Generate Application-layer Use Cases that orchestrate domain operations.
## Use Case Characteristics
- **Single responsibility**: One operation per use case
- **Orchestration**: Coordinates domain objects
- **Transaction boundary**: Manages atomicity
- **Event dispatch**: Publishes domain events
- **No business logic**: Delegates to domain
- **Framework agnostic**: No HTTP/CLI concerns
## When to Use
| Scenario | Example |
|----------|---------|
| Create operation | `CreateOrderUseCase` |
| State transition | `ConfirmOrderUseCase` |
| External service integration | `ProcessPaymentUseCase` |
| Multi-step workflow | `CheckoutUseCase` |
---
## Generation Process
### Step 1: Generate Use Case
**Path:** `src/Application/{BoundedContext}/UseCase/`
1. `{Name}UseCase.php` — Main orchestration class
### Step 2: Generate Input DTO
**Path:** `src/Application/{BoundedContext}/DTO/`
1. `{Name}Input.php` — Input data container
### Step 3: Generate Output DTO
**Path:** `src/Application/{BoundedContext}/DTO/`
1. `{Name}Output.php` — Result data container
### Step 4: Generate Tests
**Path:** `tests/Unit/Application/{BoundedContext}/UseCase/`
---
## File Placement
| Component | Path |
|-----------|------|
| Use Case | `src/Application/{BoundedContext}/UseCase/` |
| Input DTO | `src/Application/{BoundedContext}/DTO/` |
| Output DTO | `src/Application/{BoundedContext}/DTO/` |
| Unit Tests | `tests/Unit/Application/{BoundedContext}/UseCase/` |
---
## Naming Conventions
| Pattern | Example |
|---------|---------|
| Use Case | `{Verb}{Entity}UseCase` |
| Input DTO | `{Name}Input` |
| Output DTO | `{Name}Output` or `{Entity}{Result}Output` |
---
## Quick Template Reference
### Use Case
```php
final readonly class {Name}UseCase
{
public function __construct(
private {Repository}Interface $repository,
private EventDispatcherInterface $events,
private TransactionManagerInterface $transaction
) {}
public function execute({Name}Input $input): {Name}Output
{
return $this->transaction->transactional(function () use ($input) {
$aggregate = $this->repository->findById($input->id);
$aggregate->doSomething($input->data);
$this->repository->save($aggregate);
foreach ($aggregate->releaseEvents() as $event) {
$this->events->dispatch($event);
}
return new {Name}Output(...);
});
}
}
```
### Input DTO
```php
final readonly class {Name}Input
{
public function __construct(
public {ValueObject} $id,
{additionalProperties}
) {}
}
```
### Output DTO
```php
final readonly class {Name}Output
{
public function __construct(
public string $id,
{resultProperties}
) {}
public function toArray(): array
{
return ['id' => $this->id, ...];
}
}
```
---
## Anti-patterns to Avoid
| Anti-pattern | Problem | Solution |
|--------------|---------|----------|
| Business Logic | Decisions in use case | Delegate to domain |
| Multiple Aggregates | Transaction spans aggregates | One aggregate per transaction |
| Direct Repo Calls | Bypassing use case | Always use use case |
| Missing Transaction | No atomicity | Wrap in transaction |
| External in Transaction | Long-running transactions | External calls outside |
---
## References
For complete PHP templates and examples, see:
- `references/templates.md` — UseCase, Input, Output, Test templates with design principles
- `references/examples.md` — CreateOrder, ConfirmOrder, ProcessPayment examples and tests
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!