開頭先是幾位講者們的自我介紹,接著以 doctrine project 做開場,走過 DBAL (Database Abstraction Layer) 和 ORM (Object Relational Mapper) 之後,(嗯,剛開頭影片中投影片的程式碼排版很詭異地混亂!),帶一下 doctrine v1 和 doctrine v2 之間的差異:「No more base class required」、「Values stored in object properties」、「Persistence is done transparently」,因此多了個「EntityManager ($em)」來存取資料物件。
這裡有個比較清晰的版本可以搭配著看:
DQL (Doctrine Query Language) 也是介紹的重點之一,DQL 是一種物件查詢語言,跟 HQL (Hibernate Query Language)、JPQL (Java Persistence Query Language) 很接近。把它當作是個 object database 即可,是差不多的意思 :p
定期要跑一下 flush() 和 clear() ,範例:「Bulk Inserts with Domain」
$batchSize = 20; for ($i = 1; $i <= 10000; ++$i) { $user = new User; $user->setStatus('user'); $user->setUsername('user', $i); $user->setName('Mr.Smith-', $i); $em->persist($user); if ($i % $batchSize == 0) { $em->flush(); $em->clear(); // Detaches all objects from Doctrine! 這個會清掉全部物件資料,清出記憶體空間 } }
Webinar 中間開始,是一段 DEMO time,會從頭開一個新的 Zend Framework project,一路走到用 Controller 做基本的 CRUD。(http://github.com/ralphschindler/NOLASnowball)
0 Comments:
Post a Comment