Slide 1

Slide 1 text

Doctrine in 90 minutes

Slide 2

Slide 2 text

About Albert Casademont ulabox.com @acasademont (I have no Linkedin, sorry!)

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Doctrine is an ORM Object Relational Mapper

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Complex fetching? DQL to the rescue!

Slide 14

Slide 14 text

DQL SELECT u FROM User u WHERE username = 'albert' SQL SELECT u.* FROM users u WHERE username = 'albert'

Slide 15

Slide 15 text

DQL SELECT u,g FROM User u JOIN u.groups g WHERE username = 'albert' SQL SELECT u.*,g.* FROM users JOIN users_groups ug ON ug.username = u.user_id JOIN groups g ON g.name = ug.group_id WHERE username = 'albert'

Slide 16

Slide 16 text

Tons of nice features custom repositories schema migrations entity listeners caching hydrators composite keys

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

The entity lifecycle persist/find detach/merge/remove refresh flush

Slide 20

Slide 20 text

Entity traversal let's be LAZY proxies entities collections

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

Tips use the constructor! update the owning side! generate your own id's! be extra lazy! do not var_dump!

Slide 23

Slide 23 text

Some advanced features entity listeners custom walkers/filters ... and many more!

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Performance check-list Metadata & Query cache Profile your DB queries DQL join Indexes Hydrators Eager/Lazy load Batch/Detach BONUS: your own change tracker!

Slide 28

Slide 28 text

finally in Doctrine 2.5...

Slide 29

Slide 29 text

EMBEDABBLES a.k.a Value Objects

Slide 30

Slide 30 text

grĂ cies ;)