10.Symfony Doctrine Repository

10.Symfony Doctrine Repository

Merhaba. Bundan önceki yazılarımda bir adet Entity oluşturmuştuk, daha sonra ise, dummy data oluşturduk. Şimdi elimizde bir adet Entity, ve bu Entity ‘ye uygun dummy datalar var. Bu şu demek, “Artık sorgu yazabiliriz”. Bu yazımda Doctrine Repository konusuna giriş yapabiliriz. Önce kısa bir özet yapalım…

Symfony Doctrine

Herhangi bir PHP/Web uygulamasının en yaygın ve en zorlu görevlerinden biri, veritabanı işlemleridir. Symfony Framework, veritabanlarıyla çalışacak herhangi bir bileşeni entegre etmese de, Doctrine adlı bir üçüncü parti kütüphaneye sıkı entegrasyon sağlar. Doctrine in tek amacı, veritabanı etkileşimlerini kolay ve esnek yapmak için size güçlü araçlar vermektir. Yukarıda da belirttiğim üzere, Symfony de veritabanı işlemleri için, bir bileşen yoktur. Bunun yerine Symfony Doctrine denilen üçüncü parti uygulamaya full destek verir.

Yukarıda da belirttiğim üzere, Doctrine’ nin tek amacı veritabanı etkileşimlerini kolay ve esnek yapmak için bize güçlü araçlar vermektir. Bu araçlara geçmeden önce, eğer hala Doctrine hakkında bir fikriniz yok ise, 06.Symfony Doctrine — Giriş adlı yazımdan okumaya başlaya bilirsiniz.

Doctrine Repository

Symfony Doctrine — Veritabanı etkileşimlerini kolay ve esnek yapmak için bize güçlü araçlar vermektir. Bu araçlardan biri Repository. Repository yardımıyla sorgularımızı yazarız. İki çeşit Repository var. Biri hazır gelen Repository, diğeri ise Custom Repository. Bu yazının amacı Standart Repository. Custom Repository i daha sonra bakacağız. Bu kısmı biraz açalım.

Custom Repository

Henüz Standart Repository ve getirdiği sorgulama araçlarınızı bilmediğinizi farz edersek, Standart Repository nin getirdiği sorgulama araçlarının yetersiz kaldığı yerlerde, kendi sorgularımızı oluşturacağımız kısımdır. Custom Repository bu yazının konusu değil. Şimdilik böyle kısa, basit bir açıklama ile bırakalım. Özetle: Standart Repository yetersiz kalırsa, Custom Repository yazarız/kullanırız diyelim ve bırakalım.

Standart Repository

Elimizde bir adet, Entity/MySQL Tablosu ve içerisinde 1.000 adet random oluşturulmuş kayıtlar var. Dolayısıyla artık sorgular yazabiliriz. Burada kullanacağımız araçlar, hemen hemen her Entity/MySQL tablosu için vardır. Bu nedenle standarttır. Book Entity ‘sine özel değildir.