não adianta só usar
Francisco Alessandro Feitoza de Patricio da Rocha de Sousa da Silva
Um objeto que envolve uma linha em uma tabela ou exibição de banco de dados, encapsula o acesso ao banco de dados e adiciona lógica de domínio a esses dados.
// buscar todos
Produto::all(); // array de objetos Produto
// criar um novo
$p = new Produto();
$p->nome = 'Ypioca';
$p->quantidade = 10;
$p->valor = 15.99;
$p->save();
let p = new Product(
"Ypioca (sem metanol)"
);
p.valor = 19.89;
p.save();
DATA MAPPER
não confunda com Data Mapping
#[ORM\Entity)]
class City extends AbstractEntity
{
#[ORM\Id]
#[ORM\Column(type: UuidType::NAME)]
private Uuid $id;
#[ORM\Column(length: 100)]
private readonly string $name;
#[ORM\ManyToOne(targetEntity: State::class)]
#[ORM\JoinColumn(name: 'state_id', referencedColumnName: 'id')]
private readonly State $state;
#[ORM\Column(type: Types::INTEGER, nullable: true)]
private readonly ?int $cityCode;
$repository = $connection->getRepository(
City::class
);
$repository->findAll(); //SELECT * FROM
$repository->find(42); //WHERE id=42
$city = new City('Parnaiba');
$city->setState($piaui);
$connection->getEntityManager()
->persist($city);
%%{init: {'theme': 'light', 'themeVariables': { 'darkMode': false }}}%%
flowchart LR
codigo(Nosso código) <--> db[(Banco de Dados)]
%%{init: {'theme': 'light', 'themeVariables': { 'darkMode': false }}}%%
flowchart LR
codigo(Nosso código) <--> m[Model] <--> db[(Banco de Dados)]
%%{init: {'theme': 'light', 'themeVariables': { 'darkMode': false }}}%%
flowchart LR
subgraph flow
codigo(Nosso código) <--> D[DataMapper] <--> db[(Banco de Dados)]
end
D <--- |Consulta para saber qual esquema| e(((Entity)))
%%{init: {'theme': 'light', 'themeVariables': { 'darkMode': false }}}%%
flowchart LR
subgraph nosso codigo
codigo(Service/Controller/Action) <--> R[Repository]
end
subgraph ORM
R <--> D[DataMapper] <--> db[(Banco de Dados)]
end
D <--- |Consulta para saber qual esquema| e(((Entity)))
codigo <--- |instanciar| e
Como dizia minha ex:
Terminamos
DÚVIDAS?