framework:make:urls

Génère classe Urls + Message CQRS + Handler

8 stars

Best use case

framework:make:urls is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Génère classe Urls + Message CQRS + Handler

Teams using framework:make:urls should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/make-urls/SKILL.md --create-dirs "https://raw.githubusercontent.com/atournayre/claude-marketplace/main/framework/skills/make-urls/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/make-urls/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How framework:make:urls Compares

Feature / Agentframework:make:urlsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Génère classe Urls + Message CQRS + Handler

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Framework Make Urls Skill

## Instructions à Exécuter

**IMPORTANT : Exécute ce workflow étape par étape :**


## Description
Génère une classe Urls pour la génération d'URLs d'une entité avec pattern CQRS (Message + Handler).

## Usage
```
Use skill framework:make:urls
```

## Variables requises
- **{EntityName}** - Nom de l'entité en PascalCase (ex: Product)
- **{entityName}** - Nom de l'entité en camelCase (ex: product)
- **{namespace}** - Namespace du projet (défaut: App)

## Dépendances
- Entité dans `src/Entity/{EntityName}.php`
- Repository dans `src/Repository/{EntityName}Repository.php`
- Interface repository dans `src/Repository/{EntityName}RepositoryInterface.php`

## Outputs
- `src/Urls/{EntityName}Urls.php`
- `src/MessageHandler/{EntityName}UrlsMessage.php`
- `src/MessageHandler/{EntityName}UrlsMessageHandler.php`

## Workflow

1. Demander le nom de l'entité (EntityName)
2. Vérifier que l'entité et le repository existent
3. Générer les 3 classes depuis les templates `templates/`
4. Afficher les fichiers créés

## Patterns appliqués

### Classe Urls
- `final readonly`, constructeur privé, factory `new()`
- Propriétés : UrlGeneratorInterface + entité

### Message CQRS
- Extends AbstractQueryEvent, Implements QueryInterface
- `final`, constructeur privé, factory `new()`

### MessageHandler
- `final readonly`, attribut #[AsMessageHandler]
- Injection : repository + UrlGeneratorInterface

## References

- [Usage](references/usage.md) - Architecture CQRS et exemples d'enrichissement

## Notes
- Pattern CQRS : séparation query (Message) / handler
- Classe Urls enrichissable avec méthodes spécifiques (show, edit, delete)
- Immutabilité (readonly)

Related Skills

symfony-framework

8
from atournayre/claude-marketplace

Comprehensive Symfony 6.4 development skill for web applications, APIs, and microservices.

symfony:make

8
from atournayre/claude-marketplace

Cherche si il existe un maker Symfony pour faire la tache demandée et l'utilise si il existe. Si aucun maker n'existe alors utilise la slash command "/prepare"

framework:make:story

8
from atournayre/claude-marketplace

Génère Story Foundry pour fixtures de tests

framework:make:out

8
from atournayre/claude-marketplace

Génère classe Out (DTO immuable pour output)

framework:make:invalide

8
from atournayre/claude-marketplace

Génère classe Invalide (exceptions métier)

framework:make:factory

8
from atournayre/claude-marketplace

Génère Factory Foundry pour tests

framework:make:entity

8
from atournayre/claude-marketplace

Génère une entité Doctrine avec repository selon principes Elegant Objects

framework:make:contracts

8
from atournayre/claude-marketplace

Génère les interfaces de contrats pour une architecture Elegant Objects

framework:make:collection

8
from atournayre/claude-marketplace

Génère classe Collection typée avec traits Atournayre

framework:make:all

8
from atournayre/claude-marketplace

Génère tous les fichiers pour une entité complète (orchestrateur)

fix-grammar

8
from atournayre/claude-marketplace

Fix grammar and spelling errors in one or multiple files while preserving formatting

phpstan-resolver

8
from atournayre/claude-marketplace

Résout automatiquement les erreurs PHPStan en analysant et corrigeant les problèmes de types. Boucle jusqu'à zéro erreur ou stagnation.