Back to skills
SKILL.md
Acc Create Use Case
ASecurityGenerates Application Use Cases for PHP 8.5. Creates orchestration services that coordinate domain objects, handle transactions, and dispatch events. Includes unit tests.
- 666 stars
- 0 votes
- 0 copies
- 0 views
- Added September 2, 2026
Works with
Security analysis
100/100npx -y skills add majiayu000/claude-skill-registry --skill acc-create-use-case --agent claude-codeAre you the author of Acc Create Use Case?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-acc-create-use-case-claude-skill-registry)---
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
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.