Symfony 7 contre .NET Core 8 - Routage ; partie 1

DEV - 18/05
Avis de non-responsabilité Ceci est un tutoriel ou un cours de formation. Ne vous attendez pas à une visite guidée...

Clause de non-responsabilité

Il s'agit d'un tutoriel ou d'une formation. Ne vous attendez pas à un didacticiel pas à pas montrant comment utiliser ASP.NET Core. Il compare uniquement les similitudes et les différences entre Symfony et ASP.NET Core. Symfony est pris comme point de référence, donc s'il existe des fonctionnalités uniquement disponibles dans .NET Core, elles risquent de ne jamais accéder à cet article (sauf si elles sont pertinentes pour la comparaison).

Où définissons-nous les itinéraires ?

Contrôleurs

Symfony

Dans Symfony, les routes sont définies à l'aide d'attributs ou dans un fichier de configuration. Par défaut, le fichier doit être un fichier YAML. Mais nous pouvons toujours changer cela et utiliser un fichier XML ou le définir dans un simple fichier PHP. Lorsque vous travaillez avec des attributs, le framework doit être configuré de manière appropriée pour utiliser cette fonctionnalité :

# contrôleurs config/routes/attributes.yaml : ressource : chemin : ../../src/Controller/ espace de noms : App\Controller type : attribut
Entrer en mode plein écran Quitter le mode plein écran

La configuration ci-dessus indique à Symfony de rechercher des attributs dans un chemin et un espace de noms spécifiques.

Il est considéré comme la meilleure pratique de définir le routage à proximité du contrôleur. Cela ressemblera à ceci :

// espace de noms src/Controller/BlogController.php App\Controller ; utilisez Symfony\Bundle\FrameworkBundle\Controller\AbstractController ; utilisez Symfony\Component\HttpFoundation\Response ; utilisez Symfony\Component\Routing\Attribute\Route ; class BlogController extends AbstractController { #[Route('/blog')] public function list(): Response { // ... } }
Entrer en mode plein écran Quitter le mode plein écran

Noyau .NET

En apparence, la manière .NET Core de définir un itinéraire est similaire. Nous devons mettre un attribut sur un contrôleur :

// Contrôleurs/BlogController.cs utilisant Microsoft.AspNetCore.Mvc ; espace de noms App.Controllers ; public class BlogController { [Route("/blog")] public string List() { // ... } }
Entrer en mode plein écran Quitter le mode plein écran

Différences

Dans Symfony, le routage peut être défini à plusieurs endroits, y compris dans les fichiers de configuration comme YAML. Ce n'est pas une option dans .NET, où tout est dans le code.

Dans Symfony, nous devons indiquer au framework où trouver les contrôleurs. Ce n'est qu'alors que nous pouvons utiliser un attribut. Dans .NET Core, nous pouvons placer le contrôleur où nous le souhaitons. La seule chose importante est qu’il ait un attribut.

Approche micro-cadre

Symfony

Dans Symfony, on peut définir des contrôleurs en utilisant une approche dite « micro-framework ». Dans ce cas, le routage est défini directement dans le noyau. Pour utiliser cette fonctionnalité, nous devons d'abord indiquer au framework d'obtenir les routes du noyau :

# noyau config/routes/attributes.yaml : ressource : App\Type de noyau : attribut
Entrer en mode plein é...
[Courte citation de 8% de l'article original]
Loading...