Doctrine 2.0

29
Doctrine 2 Juozas Kaziukėnas www.juokaz.com / [email protected] / @juokaz

description

 

Transcript of Doctrine 2.0

Page 1: Doctrine 2.0

Doctrine 2Juozas Kaziukėnas

www.juokaz.com / [email protected] / @juokaz

Page 2: Doctrine 2.0

Juozas Kaziukėnas, Lithuanian You can call me Joe 2 years in Edinburgh, UK Studying in University of Edinburgh Software developer, consultant and evangelist Open source developer for Zend Framework,

Doctrine… More info in www.juokaz.com and twitter @juokaz

Who am I?

Page 3: Doctrine 2.0

Doctrine users? Propel users? (you will be converted!) Interested in DB’s and PHP? Interested in PHP news?

Who are you?

Page 4: Doctrine 2.0

Doctrine is ORM tool for PHP

Inspired by Hibernate, ActiveRecord etc.

Page 5: Doctrine 2.0

Doctrine 1.X

Page 6: Doctrine 2.0

Slow High memory usage (cyclic references) Magic! (eg. Behaviors) Hard to execute raw SQL Still the best ORM for PHP available today

Doctrine 1.X

Page 7: Doctrine 2.0

ActiveRecord

Root of all problems!

Page 8: Doctrine 2.0

ActiveRecord

Page 9: Doctrine 2.0

Stable Works Makes development fast, clean and

consistent Used in production

Still the best ORM for PHP available today

Page 10: Doctrine 2.0

Doctrine 2

Page 11: Doctrine 2.0

Doctrine 2 is completely

different

Page 12: Doctrine 2.0

Everything you can do in Doctrine 1 you can do in Doctrine

2, just in a different way.

Page 13: Doctrine 2.0

Rewritten from scratch (almost) PHP 5.3 Decoupled components Simplified API

◦ “Complexified” internals?.. Performance

◦ New hydartion◦ Less magic◦ Overall cleanup

What’s new?

Page 14: Doctrine 2.0

Doctrine 2 Architecture:Based on JSR-317 a.k.a. JPA v2.0

Page 15: Doctrine 2.0

[Common, DBAL, ORM, ODM]

Page 16: Doctrine 2.0

Caching Events Annotations Class loaders … more

Common

Page 17: Doctrine 2.0

Annotations

Page 18: Doctrine 2.0

Can be used without ORM Abstraction for MySQL, PgSQL, Oracle,

Microsoft SQL, DB2 etc. PHP types mapping to DB types Extendable … more

DBAL

Page 19: Doctrine 2.0

Connection

Page 20: Doctrine 2.0

Actual ORM component Uses Common and DBAL No more ActiveRecord Entities

◦ Metadata mapping Entity manager Query language

◦ Faster, cleaner, clever, extendable◦ No forcing

ORM

Page 21: Doctrine 2.0

Entity

Page 22: Doctrine 2.0

Querying

Page 23: Doctrine 2.0

ODM? Hell yeah NoSQL!!!

MongoDB, CauchDB

Page 24: Doctrine 2.0

Abstracts NoSQL databases Similar Metadata configuration A lot of functionality from ORM also

available in ODM◦ Querying◦ EntityManager -> DocumentManager

ODM

Page 25: Doctrine 2.0

ODM Querying

Page 26: Doctrine 2.0

Much more!

Page 27: Doctrine 2.0

Doctrine 2 will be released soon Most of the functionality is there Used in production “The library” for PHP 5.3 Symfony, Zend Framework etc.

Finishing

Page 28: Doctrine 2.0

Questions?

Page 29: Doctrine 2.0

Juozas Kaziukėnas www.juokaz.com [email protected] twitter: @juokaz

* Illustrations from http://images.google.com

Thanks!!!