2. ● ORM Nedir?
● Neden Kullanılmalı ?
● Doctrine Nedir ?
● Symfony2 ile kurulum
● Doctrine ayarları
● Örnek uygulama
o Kullanıcı / Yorumlar / Kullanıcı Grupları
o Kullanıcı Ekleme / Düzenleme / Silme
o Yorum Ekleme
o Kullanıcıya Rol Atama
● Doctrine Eventları
Flashforward
3. ORM Nedir?
ORM - Object Relational Mapping
Veritabanları ve nesne tabanlı yazılım dilleri
arasında veri dönüşümü sağlamak için
kullanılan bir yöntemdir.
4.
5. Neden ?
1. Veritabanı bağımsızdır.
2. SQL Komutlarıyla uğraşmazsınız.
3. Güvenlik zâfiyetleri en az düzeydedir.
4. Kodunuzu temiz tutar.
5. Hızlı geliştirme yapmanızı sağlar.
6. Doctrine
1. 2006 yılından beri geliştiriliyor ,
2. SensioLabs tarafından,
3. 344 geliştirici ,
4. 2372 yıldız ,
5. v2.4.7 ,
6. En güçlü ORM (PHP için) .
14. Örnek Uygulama
● Kullanıcı Veritabanı
● Ekleme / Silme / Listeleme
● Kullanıcıların yorumları
● Kullanıcıların rolleri
15. ● Doctrine veritabanında bulunacak tabloları 3 farklı
formatta ayarlama imkanı sağlıyor.
○ “YAML” dil bağımsız bir veri değişim formatı
○ “XML” bir işaretleme dili
○ “Annotation” kodun akışını bozmayan,
yorumsatırına eklenen metadatalar
● Entity Generations
● Repositories
Doctrine
23. Şu aşamada
● 3 adet orm.yml uzantılı dosyamız var
o User.orm.yml
o Group.orm.yml
o Comment.orm.yml
● İlişkileri kurulmuş durumda
● Repository sınıfları belirlendi
24. Entity ve Repository dosyaları oluşturuluyor.
Veritabanı ile Entity sınıfları eşleniyor.
Production işlerde --dump-sql
25. ORM
Görüldüğü gibi ORM yapısı veritabanına elinizi
sürmeden tabloları oluşturup ilişkilendirmenizi
hızlıca sağladı. Artık tüm veritabanı işlemlerinizi
Entity sınıfınızı kullanarak Repository sınıfları
içerisinde gerçekleştireceksiniz.
35. Doctrine Events
● LifeCycle Events olarak adlandırılıyor.
● Her işlem öncesinde, sonrasında, sırasında
işlemlere dahil olabilirsiniz.
● EventManager tarafından yönetilirler.
37. Lifecycle Callbacks
Basit işleri yakalamak için, aynı event’lara
entity’ler üzerinde tanımlanabilen metodlar.
Ayar dosyalarından (yml, annotation, xml)
tetiklenebilir.