Команда «composer create-project symfony/website-skeleton» используется для создания нового проекта Symfony с использованием шаблона «website-skeleton». Эта команда инициализирует новый проект Symfony с базовой структурой и зависимостями, необходимыми для создания веб-сайта.
Вот несколько методов, обычно используемых в проектах Symfony, созданных с помощью шаблона «website-skeleton»:
-
Конфигурация маршрутизации:
Symfony использует систему маршрутизации для сопоставления URL-адресов с контроллерами. Вы можете определить маршруты в файле «config/routes.yaml» или использовать аннотации в классах вашего контроллера. Вот пример конфигурации маршрута в формате YAML:# config/routes.yaml home: path: / controller: App\Controller\HomeController::index -
Контроллеры:
Контроллеры управляют логикой и генерируют ответы для определенных маршрутов. Вы можете создать класс контроллера, расширив базовый класс контроллера, предоставленный Symfony. Вот пример базового контроллера:<?php // src/Controller/HomeController.php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; class HomeController extends AbstractController { / * @Route("/", name="home") */ public function index(): Response { return $this->render('home/index.html.twig'); } } -
Шаблоны Twig:
Symfony использует механизм шаблонов Twig для рендеринга представлений. Вы можете создавать шаблоны в каталоге «шаблоны». Вот пример шаблона Twig:{# templates/home/index.html.twig #} <!DOCTYPE html> <html> <head> <title>Welcome to my website</title> </head> <body> <h1>Hello, Symfony!</h1> </body> </html> -
Doctrine ORM:
Symfony интегрируется с Doctrine, мощной библиотекой объектно-реляционного отображения (ORM). Вы можете определять сущности, создавать схемы базы данных и выполнять операции с базой данных с помощью Doctrine. Вот пример класса сущности:<?php // src/Entity/User.php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; / * @ORM\Entity */ class User { / * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; / * @ORM\Column(type="string", length=255) */ private $name; // Getters and setters... } -
Сервисы и внедрение зависимостей:
Symfony следует принципам внедрения зависимостей (DI) и предоставляет мощный контейнер сервисов. Вы можете определить службы и внедрить их в свои контроллеры или другие службы. Вот пример определения службы:# config/services.yaml services: App\Service\MyService: arguments: $someParameter: 'some_value'