開頭先是幾位講者們的自我介紹,接著以 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