Laravel GraphQL kullanımı #2 tablo oluşturma, veri ekleme silme, ilişki işlemleri

evet dersimizin 2bölümüne geçelim. şunu tekrar etmekte fayda görüyorum. benim de öyle ahım şahım bir bilgim yok. sadece videoda gördüğüm uyguladığım çeşitli fonksiyonları size gösteriyorum. işe yarıyor bunu geliştirmek 2 tablodan yüz tabloya çıkarmak sizin hayal gücünüzde.

iki tane tablo oluşturuyoruz. bunları migration ile yapıyoruz. bunun için aşağıdaki kodları kullanın ki modeli oluştururken tablo dosyasını da oluştursun.

bunu yaptığınızda hem model dosyamızı hem de migration klasörü altında 2019_01_02_074138_create_categories_table.php ve 2019_01_02_074147_create_books_table.php dosyamızı kendi oluşturuyor.

şimdi geliyoruz categories_table.php public up fonksiyonu içine

books_table.php içine aşağıdaki kodları yazıyoruz.

php artisan migrate diyerek de bu tabloları veritabanımıza ekliyoruz. env dosyasında veritabanı ayarlarını yapmayı unutmayın.

neyse sonuç olarak book ve categori tablolarımızı oluşturduk. şimdi bunların model dosyalarına gelip ilişki kuruyoruz.

Category.php modelimize gelip;

fonksiyonu yazıyoruz. Book modelimize de gelip;

bunu yazıyoruz. artık tablolarımızdaki ilişkilerimizi kurduk. buna seeder ile rastgele kayıtlar ekleyin 10-20 tane seeder ile yapabilirsiniz kolaydır daha önce anlatmıştık. burayı pas geçiyor ve hepsinde 20-30 veri olduğunu düşünüyorum. artık tablomuz da dolu. bunu da koyduk cebimize. şimdi graphql işlerimize geçelim.

routes/graphql/schema.graphql dosyasını açıp alt tarafa bu iki tablomuzu tanıtalım.

yine aynı dosyada type Query { ile başlayan kısmın içine de aşağıdakileri yazıyoruz.

bakın şimdi demiş olduk ki query kardeşim sana book isimli bir query gelirse onun içinde de bir id değeri olacak git onu alt tarafta type book diye bir şey yazmıştım ya orada yer alan idye göre ara sonuç olarak bulunan değeri göster.

ilkinde ise books diye bir query gelirse ne kadar Book varsa getir. categories içinde gördüğünüz gibi benzer şeyleri yaptık. şimdi graphql sayfamızı açalım ve sorgularımızı yazalım.

sonuçlar gelmiş olmalı. bide find yapalım idye göre

kategoriyi de böyle yapabilirsiniz. şimdi orada iki method daha var. booksByFeatured ve someComplexQuery. bunları tanıtmak gerekirse ilki ile başlayayım. Featured öne çıkarılanlar anlamına gelmekte. Yani tanıtımlarda ilk sırada yer alacak kitaplar veritabanında Featured bölümünde Boolean olarak tanımlanmış yani 0-1 true false. Biz diyeceğiz ki abi sen bana featured değeri 1 olanları getir. nasıl mı yapacağız?

featured değeri true olanları getirdi. böylelikle farklı bir kolonda true false üzerinden işlem yapmayı da öğrendik. şimdi bize like da lazım. içinde a geçenler b geçenler. Bunu da someComplexQuery ile yapacağız. Bunu nasıl yapacağız peki?

someComplexQuery içine bakalım ilk önce search diye bir değişkene string bir veri istiyor karşılığında ise Book tablosunda ne varsa göster diyor. iyi hoş ama book tablosunda bir sürü kolon var hangisinde arama yapıyor?? onu da artisan komutları ile çözüceğiz. burada oluşturduğumuz metod adı ile query adımız aynı olmak zorunda.

Bu dosya app/Http/GraphQL/Queries/ içinde SomeComplexQuery.php olarak oluşuyor. bunun fonksiyon bölümüne sadece şu ufak kodu yazıyoruz.

$args olarak geliyor gönderdiğimiz veriler haberiniz olsun. Aslında böylelikle query oluşturmayı da öğrendik. tabi eminim daha güzel fonksiyonları da vardır ama bildiğim kadarıyla anlatıyorum.

ilişki kurmayı, arama yapmayı, query sorgu oluşturmayı öğrendik. ya dostum iyi hoş diyorsun ama ekleme silme işlemini nasıl yapacağız diyorsun. hemen ona geçelim

Bunun için Mutation adı verdikleri bir method var. bunun içine;

rules yazanlar kontrol işlemi biliyorsunuz. gereklidir 10 kelime olsun yüz kelime olsun gibi validateleri içerir.

az çok okuyorsunuzdur ve ne anlama geldiklerini çözmüşünüzdür. ben bi kere de çalıştırayım gerisi size kalmış. yoruldum çünkü.

id ve name değeri de eklediğimi görmek için. yani bunu ekledim idsi ve ismi bu diyor. basit gördüğünüz gibi. bu query içinde değil mutation içinde bu detaya dikkat tabi.

book kısmını da siz yapabilirsiniz. şimdi bunun videolu halini paylaşan kanalı ve dosyalarını aşağıdaki linklere tıklayarak öğrenebilirsiniz. Andre Madarang abimize kardeşimize bize bunu öğrettiği için teşekkür ederiz. kanal github

Laravel GraphQL kullanımı #1

Öncelikle çok çok fazla bilgiye sahip olmadığımı bilmenizi isterim. Sadece bir kaç videodan sonra hem ben unutmamak hem de benim yaşadığım yaşadığı zorlukları başkası yaşamasın diye ufaktan giriş seviyesinde bildiklerimi yazacağım.

öncelikle laravelini kurunuz 🙂 (alla alla, evet gerekli)

yazıyoruz. laravelimiz kuruluyor. sonra env dosyasına bir tane eli yüzü düzgün veritabanı bilgisi yazın. sonra laravel ile birlikte gelen users tablosunu kurun. onu aşağıdaki kodu yazarak yapabilirsiniz.

yine laravel ile beraber gelen bunun factory’si mevcut. bu factory dediğimiz olayla 10 tane rastgele üye ekliyor. daha önceki konularımda var. ben sadece size çalıştırmasını söylücem yine aşağıdaki kodları yazın.

sonra aşağıdakileri

şimdi siteminizin sonuna /graphql-playground ekleyerek graphql’i test edeceğimiz ortamı açtık.

oraya

oraya bu kodu yazarsak 1 numaralı user’in id name ve email değerlerini getir demiş oluruz.

şimdilik bu kadar. öteki derste artık diğer basit şeyleri gösteririm.

laravel basit cache örneği

10 dk süreli bi cache oluştur ve bunu sonuc değerine ata. bu sonuç değeri bir dizi ve bu dizinin içine uyeler diye bi değişken tanımla ve uyeler tablosundan gelen verilerle doldur. tekrar kodumuza yeniden baktığımızda sonuc diye bir değişken varsa direk view dosyasına yolla eğer yoksa oluştur 10 dakikalık bi tane diyoruz.

laravel seeding ve factory – random kayıt ekleme


factory ile bir sürü kaydı bi anda girebilirsiniz. örnek factory oluşturma;

hemen oluşturulan dosyaya giriyoruz. şöyle bir kod giriyoruz siz kendi tablonuza göre güncelleyin

faker kütüphanesi yoksa yukarıya ekleyin. o otomatik oluşturmamızı sağlıyor. App\urunler yazan yere kendi modelinizi koymayı unutmayın.

ya kardeşim bana başka özellikler lazım kolonlarımda ad soyad felan var dersen https://github.com/fzaninotto/Faker buraya girip fakerin sana neler sağladığını görebilirsin.

kullanmak için basit bir kontroller oluşturun ve oraya

eğer 100 kayıt eklemek istiyorsak aynı anda;

şimdi diyeceksiniz ben her seferinde bunu kontroller ile yazmak zorunda mıyım? tablolarımı sıfırladım yine tekrar tekrar bunu mu tanımlıcam derseniz seed yapısı bizi kurtarıyor.

aşağıda yazıyor ama bilenler için buraya kısayol yapıyorum. controllera yazacağın metni run içine yazıyorsun oluyor bitiyor daha sonra aşağıdaki artisan db seed komutunu yazıp çalıştırıyorsun bu kadar. anlamadıysan aşağıyı oku eminim çözeceksin.

seeder kullanımı

database/seed/databaseseeder.php içinde run fonksiyonu içine basit bi insert cümlesi yazalım daha sonra aşağıdaki komutu yazalım.

yok ya ben kendi seeder dosyamı oluşturucam dersen;

diyorsun. sonra bunun içine bir şeyler yazdıktan sonra bunu çalıştırmadan önce yine DatabaseSeeder.php içine gidip diyoruz ki uruntableseeder diye bişi oluşturdum sana bi emir gelirse bunu da çalıştır.

 

laravel migrations kullanımı

laravel migrationsları ilk olarak çalıştırma komutu;

bu işlemi geri almak için

kendi tablomuzu oluşturmak için komutumuz

https://laravel.com/docs/5.8/migrations

kolon tiplerini burada görebilirsiniz.

örnek olması için:

php artisan migrate ile veritabanına uygulayabiliriz tekrardan.

sonradan bir kolon ekleyeceksek;

reset ile de herşeyi silebiliriz.

refresh ile de migrate ile eklediğimiz tüm kolonları silip yeniden yükleyebiliriz.

en son fresh özelliği geldi. bunu kullanırken dikkat edin. bunun özelliği tüm database tablolarını silip migratede yer alan tabloları ekliyor. migrate dışında manuel oluşturduğunuz tabloları da siliiiiiyoooor.

 

wordpress eklenti yapımı (hepsi bir arada)

wordpress tanıtımı

stil dahil etme

menü oluşturma

class adı altında çalışma

uygulama aktifleştirildiğinde tablo oluşturma

uygulamalı eğitimini buradaki yerden alabilirsiniz. güzel bir eğitim videosu tavsiye ederim.

veritabanını dahil etme – classın altına bunları yazıyoruz

kritere göre kullanıcıları çekme

form işlemi

eğer post işlemi olursa

wordpress veritabanı ekleme-silme-listeleme-güncelleme

resim yükleme fonksiyon

wp_option değer atama

çeşitli sayıları alma

 

wordpress eklenti yapımı #4 veritabanı

ekleme işlemi

wordpress eklenti yapımı #3

forma güvenlik kontrolü ekleme ve gelen inputları temizleme

csrf diye ben yazdım ismini değiştirebilirsiniz.

ile başına if yazarak kullanabilirsiniz.

gelen postları temizleme ise

wordpress eklenti yapımı #2

eklentimizin yan tarafta gözükmesini istiyorsak

capability = manage options yazarak tüm adminlerin bu menüye girebileceğini söylemiş olduk.

99 neden 99 dersen. yan tarafta bir sürü menü oluyor wp-adminde. en altta görünmesi için 99 yazdık. eğer başka biryerlerde yer almasını istersek 99 yerine aşağıdaki idleri kullanabilirsiniz.

sayfalama şeklinde isterseniz;

yok ben aynı sayfada fonksiyon kullanmak istiyorum ne yapmam gerekir diyorsan:

şeklinde kullanabilirsin onu da.

wordpress eklenti yapımı #1

plugin klasörü altına kendi dosyasını oluşturun. içine index.php oluşturun ve aşağıdaki kodu yazınız. /* ile başlayan kısımları silmeyiniz.