• Rest API Bağlantılarının (URL) Tasarlanması

    Oluşturduğumuz bir uygulamanın erişilebilir olması için bir arayüz tasarlamamız gerekli. Bu arayüze gelecek HTTP istekleri ile uygulamamızın verileri erişilebilir olacaktır. Bu arayüzü bağlantılarını tasarlarken dikkat etmemiz gereken bazı noktaları aşağıda listeleyeceğim. Versiyonlama Bağlantılarımıza versiyon bilgisi eklemek uzun vadede geçişleri kolaylaştıracak bir pratik olacaktır. Aynı zamanda kullanıcılara da eski versiyonda kalabilmeleri esnekliğini sağlayacaktır. Fiil Kullanımında Kaçın…

  • PHP ile Trait ve Interface Kullanımları

    Nesne yönelimli programlama yaparken kalıtım ve tekrar kullanım başlıkları önemli rol oynuyor. PHP üzerinde sınıflar tanımlanırken kullanabileceğimiz konseptlerden birkaçını aşağıda karşılaştırarak anlatmaya çalışacağım. Trait Pek çok sınıfta kullanma durumumuz olabilecek method ve değerleri bir trait içine toplayarak bunu ilgili sınıflara uygulanabilir. Bir sınıfa birden fazla trait uygulanabilir. Uygulanırken use anahtar kelimesi kullanılır. Trait içinde tanımlanmış…

  • PHP’de Arrow Function ve Dizi Fonksiyonlarında Kullanımı

    PhP 7.4 ile fonksiyon tanımlamanın yeni ve kısa bir yöntemi geldi. Tek satır ile => sembollerini kullanarak bir fonksiyon tanımlayabiliriz. Normal fonksiyonlardan ayıran en önemli özelliği dış alandaki (outer scope) değişkenleri de kullanmamıza imkan verir. Aşağıdaki örnekte indirim oranı fonksiyon içinde tanımlanmadan kullanıldı. Burada dikkat edilmesi gereken bir nokta da dış alandaki değişken fonksiyon içinde…

  • Laravel Eloquent Kütüphanesinde Eager ve Lazy Loading Farkı

    Eloquent ile tablolar arasında ilişkiler kurabiliyoruz. User(kişi) tablosuna bağlı Post(makale/yazı) tablosu bu Post tablosuna bağlı Comment(yorum) tablosu gibi. Bu tablolardan aralarındaki ilişkileri kullanarak veri okurken dikkat etmemiz gereken bazı durumlar var. Eager(aç gözlü) ya da Lazy (tembel) yükleme yöntemlerinden birini seçmemiz gerekir. Karmaşıklık ya da okuduğumuz verinin derinliği arttıkça bu tercih çok önemli olacaktır. Bu…

  • Laravel’de Data Transfer Objects Kullanımı

    Yazılım geliştirmesi yapılan bir projede iş mantığı çok karmaşık olmasa da veri kullanımı ve transferi çok karmaşıklaşabiliyor. Böyle durumlar için alacağımız önlemlerden biri de veri transfer nesneleri (DTO) kullanmak olabilir. veri transfer nesneleri – data transfer objects – dto DTO’lar basit veri kapsayıcı – taşıyıcı sınıflardır. İçlerinde veriyi değiştirmeye manipüle etmeye yarayan mantık bulunmaz fakat…

  • PHP 8 ile Gelen Özellikler

    PHP 8 sürümü ile bu dilde olmayan pek çok önemli özellik eklenmiş oldu. Bunlardan bazılarını aşağıda listeledim. Union Types – Birleşik tipler Bir fonksiyonun dönen değerin ya da aldığı parametrenin tipi tanımlarken yani type casting yaparken artık bir kaç değeri birleştirebiliriz. Named Arguments – Adlandırılmış Değişkenler Bir fonksiyon kullanılırken verilecek parametreleri adına göre eşitleyerek verebiliriz.…

  • Eloquent ORM Kütüphanesinde get() ve first() Farkları

    Özet get() metodu sorguyu çalıştırır ve bir Collection döner yani içerisinde sorgu sonucunda kaç satır veri varsa hepsini getirir, first() ise get() gibi sorguyu çalıştırır ve sadece ilk satırı Model ya da stdClass tipinde bir nesne olarak döner. Bir ORM olan Eloquent sayesinde veritabanımızdaki tablolar ile PHP sınıflarımızı rahatlıkla eşleştirip kullanabiliyoruz. Metodları zincirleyerek oluşturduğumuz sorguların…

  • Javascript Canvas Elementi ile Flappy Bird Yapımı

    Tarayıcı tabanlı oyunlar yapmak web yazılım geliştirme meraklıları için çok faydalı bir pratiktir. Bu sefer, kısmen de olsa, meşhur Flappy Bird oyununu yapacağız. Projenin kodlarına bu repo’dan ulaşabilirisiniz. Kod kısmına geçmeden önce ihtiyacımız olan görselleri bulalım. Bir oyunun içerisinde onlarca farklı görsel olabilir. Bunların hepsini tek tek yüklemek, her biri için ayrı bir istek göndermek,…

  • Javascript ile Mayın Tarlası Oyunu Yapımı

    Bu sefer Windows içinde bir klasik haline gelen mayın tarlası oyunun basit bir kopyasını kodlayacağız. Direk sonucu görmek isterseniz yukarıdaki kod yazım videosunu izleyebilirsiniz. Kodlara da buradan erişebilirsiniz. Basit bir HTML dosyası ile başlıyoruz. Bir div elementi oluşturup mineSweeper id’sini veriyoruz. İçine de grid sınıflı bir div elementi ekliyoruz. CSS tarafında karmaşık bir durum yok.…