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!