Slide 1

Slide 1 text

PREPARING FOR DOCTRINE 3 Denis Brumann denis.brumann@sensiolabs.de

Slide 2

Slide 2 text

ABOUT ME Denis Brumann denis.brumann@sensiolabs.de @dbrumann @dbrumann denis.brumann@sensiolabs.de 1

Slide 3

Slide 3 text

@dbrumann denis.brumann@sensiolabs.de 2

Slide 4

Slide 4 text

@dbrumann denis.brumann@sensiolabs.de 3

Slide 5

Slide 5 text

@dbrumann denis.brumann@sensiolabs.de 4

Slide 6

Slide 6 text

@dbrumann denis.brumann@sensiolabs.de 5

Slide 7

Slide 7 text

MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE @dbrumann denis.brumann@sensiolabs.de 6

Slide 8

Slide 8 text

@dbrumann denis.brumann@sensiolabs.de 7

Slide 9

Slide 9 text

MAPPING use Doctrine\ORM\Mapping as ORM; @dbrumann denis.brumann@sensiolabs.de 8

Slide 10

Slide 10 text

MAPPING use Doctrine\ORM\Annotation as ORM; @dbrumann denis.brumann@sensiolabs.de 9

Slide 11

Slide 11 text

MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE @dbrumann denis.brumann@sensiolabs.de 10

Slide 12

Slide 12 text

/** @ORM\Entity */ class Customer { /** * @ORM\Id * @ORM\Column(type="guid") * @ORM\GeneratedValue(strategy="UUID") */ private $id; … @dbrumann denis.brumann@sensiolabs.de 11

Slide 13

Slide 13 text

/** @ORM\Entity */ class Customer { /** * @ORM\Id * @ORM\Column(type="guid") * @ORM\GeneratedValue(strategy="UUID") */ private $id; … @dbrumann denis.brumann@sensiolabs.de 12

Slide 14

Slide 14 text

UUID GENERATOR composer require ramsey/uuid-doctrine @dbrumann denis.brumann@sensiolabs.de 13

Slide 15

Slide 15 text

/** @ORM\Entity */ class Customer { /** * @ORM\Id * @ORM\Column(type="uuid") * @ORM\GeneratedValue(strategy="NONE") */ private $id; public function __construct() { $this->id = Uuid::uuid4(); } public function getId(): string { return (string) $this->id; } @dbrumann denis.brumann@sensiolabs.de 14

Slide 16

Slide 16 text

MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE @dbrumann denis.brumann@sensiolabs.de 15

Slide 17

Slide 17 text

16

Slide 18

Slide 18 text

Doctrine\ORM\Mapping\ NamedQueries NamedQuery NamedNativeQuery ColumnResult FieldResult EntityResult SqlResultSetMappings SqlResultSetMapping @dbrumann denis.brumann@sensiolabs.de 17

Slide 19

Slide 19 text

Doctrine\ORM\EntityManager:: createNamedQuery createNamedNativeQuery @dbrumann denis.brumann@sensiolabs.de 18

Slide 20

Slide 20 text

Doctrine\ORM\EntityRepository:: createNamedQuery createNamedNativeQuery @dbrumann denis.brumann@sensiolabs.de 19

Slide 21

Slide 21 text

MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE @dbrumann denis.brumann@sensiolabs.de 20

Slide 22

Slide 22 text

@dbrumann denis.brumann@sensiolabs.de 21 SELECT p FROM AppBundle:Product p WHERE p.price > :price

Slide 23

Slide 23 text

@dbrumann denis.brumann@sensiolabs.de 22 SELECT p FROM AppBundle:Product p WHERE p.price > :price

Slide 24

Slide 24 text

@dbrumann denis.brumann@sensiolabs.de 23 SELECT p FROM AppBundle\Entity\Product p WHERE p.price > :price

Slide 25

Slide 25 text

@dbrumann denis.brumann@sensiolabs.de 24 SELECT p FROM Product::class p WHERE p.price > :price

Slide 26

Slide 26 text

@dbrumann denis.brumann@sensiolabs.de 25

Slide 27

Slide 27 text

MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE @dbrumann denis.brumann@sensiolabs.de 26

Slide 28

Slide 28 text

Doctrine\ORM\Mapping\ClassMetadata:: getQuotedColumnName getQuotedTableName getQuotedJoinTableName getQuotedIdentifierColumnNames @dbrumann denis.brumann@sensiolabs.de 27

Slide 29

Slide 29 text

/** @ORM\Entity */ class Customer { /** * @ORM\Id * @ORM\Column(name="number", type=“integer") */ private $number; … @dbrumann denis.brumann@sensiolabs.de 28

Slide 30

Slide 30 text

/** @ORM\Entity */ class Customer { /** * @ORM\Id * @ORM\Column(name="number", type=“integer") */ private $number; … @dbrumann denis.brumann@sensiolabs.de 29

Slide 31

Slide 31 text

@dbrumann denis.brumann@sensiolabs.de 30

Slide 32

Slide 32 text

@dbrumann denis.brumann@sensiolabs.de 31

Slide 33

Slide 33 text

@dbrumann denis.brumann@sensiolabs.de 32

Slide 34

Slide 34 text

@dbrumann denis.brumann@sensiolabs.de 33

Slide 35

Slide 35 text

@dbrumann denis.brumann@sensiolabs.de 34

Slide 36

Slide 36 text

@dbrumann denis.brumann@sensiolabs.de 35

Slide 37

Slide 37 text

@dbrumann denis.brumann@sensiolabs.de 36

Slide 38

Slide 38 text

@dbrumann denis.brumann@sensiolabs.de 37

Slide 39

Slide 39 text

@dbrumann denis.brumann@sensiolabs.de 38

Slide 40

Slide 40 text

@dbrumann denis.brumann@sensiolabs.de 39

Slide 41

Slide 41 text

MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE @dbrumann denis.brumann@sensiolabs.de 40

Slide 42

Slide 42 text

@dbrumann denis.brumann@sensiolabs.de 41

Slide 43

Slide 43 text

Doctrine\ORM\EntityManagerInterface:: copy($entity, $deep = false) merge($object) detach($object) @dbrumann denis.brumann@sensiolabs.de 42

Slide 44

Slide 44 text

@dbrumann denis.brumann@sensiolabs.de 43

Slide 45

Slide 45 text

Doctrine\ORM\EntityManagerInterface:: flush($entity = null) clear($entityName = null) @dbrumann denis.brumann@sensiolabs.de 44

Slide 46

Slide 46 text

Doctrine\ORM\EntityManagerInterface:: flush($entity = null) clear($entityName = null) @dbrumann denis.brumann@sensiolabs.de 45

Slide 47

Slide 47 text

@dbrumann denis.brumann@sensiolabs.de 46

Slide 48

Slide 48 text

@dbrumann denis.brumann@sensiolabs.de 47

Slide 49

Slide 49 text

@dbrumann denis.brumann@sensiolabs.de 48

Slide 50

Slide 50 text

MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE @dbrumann denis.brumann@sensiolabs.de 49

Slide 51

Slide 51 text

@dbrumann denis.brumann@sensiolabs.de 50

Slide 52

Slide 52 text

@dbrumann denis.brumann@sensiolabs.de 51

Slide 53

Slide 53 text

@dbrumann denis.brumann@sensiolabs.de 52 RECAP MAPPING UUID GENERATOR NAMED QUERIES NAMESPACE ALIASES CLASS METADATA ENTITY MANAGER SECOND LEVEL CACHE

Slide 54

Slide 54 text

@dbrumann denis.brumann@sensiolabs.de 53

Slide 55

Slide 55 text

@dbrumann denis.brumann@sensiolabs.de 54

Slide 56

Slide 56 text

@dbrumann denis.brumann@sensiolabs.de 55 Thank You! Have a good evening.