Le langage PHP est devenu l'un des standards pour le développement d'applications Internet, et Symfony, en tant que framework PHP efficace et flexible, est privilégié par de plus en plus de développeurs PHP. Symfony fournit un riche ensemble de composants et d'outils qui permettent aux développeurs de créer rapidement des applications Web de haute qualité. Dans cet article, nous présenterons comment utiliser le framework Symfony dans la programmation PHP.
composer create-project symfony/skeleton my-project
Cette commande créera un nouveau projet Symfony nommé mon-projet dans le répertoire courant. Après cela, vous pouvez démarrer l'application Symfony en exécutant la commande suivante :
cd my-project php -S localhost:8000 -t public
Un exemple de contrôleur simple est le suivant :
<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; class HelloController extends AbstractController { public function index() { $message = "Hello Symfony"; return new Response($message); } }
Dans l'exemple ci-dessus, nous avons créé une classe appelée HelloController et créé une méthode appelée index qui renvoie une chaîne contenant la chaîne de réponse "Hello Symfony".
Afin de rendre le contrôleur accessible, les itinéraires doivent être définis dans le routeur. Le routeur mappe la demande au bon contrôleur. Dans le contrôleur, nous utilisons des annotations pour définir des itinéraires. Voici un exemple de routeur simple :
<?php use SymfonyComponentRoutingLoaderConfiguratorRoutingConfigurator; return function (RoutingConfigurator $routes) { $routes->add('hello', '/hello') ->controller([HelloController::class, 'index']); };
Dans le routeur ci-dessus, nous définissons une route nommée "hello", son chemin est "/hello" et la requête sera acheminée vers la méthode d'index de HelloController.
<!DOCTYPE html> <html> <head> <title>Hello Symfony</title> </head> <body> <h1>{{ message }}</h1> </body> </html>
Dans l'exemple de modèle ci-dessus, nous avons utilisé un modèle qui contient une variable de message. Le moteur de template Twig injectera automatiquement les variables nécessaires. Voici les modifications apportées au contrôleur et au routeur :
<?php class HelloController extends AbstractController { public function index() { return $this->render('hello.html.twig', [ 'message' => 'Hello Symfony' ]); } } <?php use SymfonyComponentRoutingLoaderConfiguratorRoutingConfigurator; return function (RoutingConfigurator $routes) { $routes->add('hello', '/hello') ->controller([HelloController::class, 'index']) ->methods(['GET']) ->defaults(['_format' => 'html']); };
Dans l'exemple ci-dessus, nous avons modifié la fonction d'index dans HelloController afin qu'elle renvoie un modèle Twig rendu. Dans le même temps, nous avons également ajouté un élément de format HTML par défaut dans le routeur afin que les modèles Twig puissent être rendus correctement.
Ce qui suit est un exemple d'entité simple pour représenter les informations utilisateur :
<?php namespace AppEntity; use DoctrineORMMapping as ORM; /** * @ORMEntity * @ORMTable(name="users") */ class User { /** * @ORMId * @ORMGeneratedValue * @ORMColumn(type="integer") */ private $id; /** * @ORMColumn(type="string", length=255) */ private $name; public function getId(): ?int { return $this->id; } public function getName(): ?string { return $this->name; } public function setName(string $name): self { $this->name = $name; return $this; } }
Dans l'exemple ci-dessus, nous avons défini une classe d'entité nommée User, qui correspond à une table de base de données nommée users. Nous définissons également une colonne entière auto-croissante appelée id et une colonne de chaîne appelée name.
Dans Symfony, nous pouvons utiliser Doctrine ORM pour interroger et modifier facilement les entités de la base de données. Voici un exemple de requête simple :
<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAnnotationRoute; use DoctrineORMEntityManagerInterface; use AppEntityUser; class UserController extends AbstractController { /** * @Route("/users/{id}", name="user_show") */ public function show($id) { $user = $this->getDoctrine() ->getRepository(User::class) ->find($id); if (!$user) { throw $this->createNotFoundException( 'No user found for id '.$id ); } return $this->render('user/show.html.twig', [ 'user' => $user, ]); } }
Dans l'exemple ci-dessus, nous avons défini une classe de contrôleur appelée UserController, qui possède une méthode appelée show, qui accepte un paramètre ID et renvoie une page HTML.
En bref, le framework Symfony est un framework PHP très puissant et efficace qui peut nous aider à créer des applications Web de haute qualité. Grâce à Symfony, nous pouvons rapidement écrire du code efficace et réutilisable et l'intégrer à des frameworks et des outils externes, tels que les modèles Twig et Doctrine ORM. Si vous êtes un développeur PHP, je pense que vous apprécierez grandement utiliser Symfony pour écrire du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!