Symfony 6 — Помогите мне понять доктрину и базы данных
Код ниже был взят из документации Symfony 6 https://symfony.com/doc/current/doctrine.html#persisting-objects-to-the-database .
// src/Controller/ProductController.php
namespace App\Controller;
// ...
use App\Entity\Product;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Response;
class ProductController extends AbstractController
{
/**
* @Route("/product", name="create_product")
*/
public function createProduct(ManagerRegistry $doctrine): Response
{
$entityManager = $doctrine->getManager();
$product = new Product();
$product->setName('Keyboard');
$product->setPrice(1999);
$product->setDescription('Ergonomic and stylish!');
// tell Doctrine you want to (eventually) save the Product (no queries yet)
$entityManager->persist($product);
// actually executes the queries (i.e. the INSERT query)
$entityManager->flush();
return new Response('Saved new product with id '.$product->getId());
}
}
Мои вопросы заключаются в следующем:
Как разработчик выбрал класс для этого проекта, потому что, просматривая класс, я не мог найти ничего полезного, скажем так, или выдающегося. Обратите внимание, что приведенный выше код работает отлично, я просто хочу знать шаблон мышления, который сопровождает выбор класса.
ManagerRegistry
.Далее, зачем разработчик это сделал
$entityManager = $doctrine->getManager();
, чего он от этого добился.Наконец, я
dd()
оба$doctrine
а также$entityManager
и получил некоторые странные результаты. Что это такое и как я могу их использовать.