Laravel’de Database (Veritabanı) İşlemleri

tarafından
774
Laravel’de Database (Veritabanı) İşlemleri
Güzel Hosting

Merhabalar,
Bu blog yazımız sizlere laravel framework sisteminde veritabanı işlemlerinden bahsedeceğim. Laravel database sistemlerinde şuan ki en gelişmiş veritabanı işlemlerinden olan ORM sistemini kullanmaktadır. Şimdi ORM nedir Diye soru sorulursa açılımı Object Relational Mapping olarak belirtilmektedir. ORM ‘yi tanımlarsak genel olarak veritabanı işlemlerinden yazılımcıyı daha az yorarak daha sonraki aşamalarda veritabanı değişikliklerini bir kaç düzenleme ile yapabilecek ve tamamiyle güvenli olduğu kabul edilen veritabanı işleme motoru olarak adlandırabiliriz.
ORM yapısını anladıysak artık veritabanı işlemlerine başlayabiliriz. Bu işlemler MVC sistemlerde Model katmanında yürütülmektedir. Model katmanında tüm yapılan işlemlere CRUD olarak adlandırılan tüm veritabanı işlemlerini kapsamaktadır. Laravel sistemlerde ORM gibi gelişmiş bir yapı bulunda sizi hiç bir zaman ORM konusunda sizi zorlamayarak düz SQL sorgularınıda bu yapıda kullanabiliriz.
Model işlemlerine geçmeden evvel laravel bize sunmuş olduğu kolaylıklardan bir tanesi olan migrate işlemlerinden bahsetmek isterim. Migrate işlemlerinin tamamını php artisan komutları ile yapabiliriz. Dilerseniz ilgili yazılımıza gider veya dilerseniz alt kısındaki kodlardan yararlanabilirsiniz.

  • php artisan make:migration migrate_adi = Migrate için dosya oluşturur.
  • php artisan make:migration migrate_adi –create=tablo_adi = Migrate için up ve down methodları hazır şekilde oluşturur.
  • php artisan make:migration migrate_adi –table=tablo_adi = Migrate edilmiş bir tabloya ek tablo eklemeye hazır şekilde oluşturur.
  • php artisan migrate = Migrate edilmemiş dosyaları migrate eder.
  • php artisan migrate:reset = Tüm migrate işlemleri iptal eder.
  • php artisan migrate:rollback = En Son yapılan migrate işlemini iptal eder.
  • php artisan migrate:refresh = Tüm tabloları silip yeniden migrate eder.
  • php artisan make:model model_adi -m = Yeni modeli migrate hazır şekilde oluşturur.

Üst kısımdaki kodlar ile CLI işlemleri yapabiliriz. CLI Command Line Interface Yani Komut Satırı Arayüzü demektir. –create=tablo_adi methodu ile oluşturduğumuz migrate’lere bakalım.

Üst kısımda migration dosyasını görüntüleyebiliriz. migration’lar database/migrations kısmından oluşturulmaktadır. Up methodu php artisan migrate çalıştırdığımızda çalışan kısımdır. $table değerine belirlediğimiz özellikler ile veritabanımızı oluşturabiliriz.  Örneğin $table->integer(‘user_id’); dediğimiz zaman integer veri girişine hazır bir kolon oluşturur veya $table->integer(‘user_id’)->unique(); diyerek bir tamlama eklediğimizde ise bu kolona yeni özellikler ekleyebiliriz.
Laravel’de default olarak utf8_unicode dil desteği kullanılmaktadır, bu Türkçe ve diğer diller için bir problem oluşturmamaktadır güvenle kullanabilirsiniz.
Tüm bu işlemleri yaptıktan sonra ana dizinde yer alan .env dosyasını açarak kontrol edelim.

Bu kısımı bir config dosyası gibi düşünebiliriz. Bu kısımda normal veritabanı bağlantımızı gerçekleştirebiliriz. env.example ile laraveli github gibi sürüm kontrol sistemlerine atadığınızda env dosyanızı güvenlik sebebiyle göndermemektedir bunuda .gitignore dosyasından görüntülüyebilir ve düzenleyebiliriz.
Ek olarak bu kısımda anlatmak istediğim diğer bir işlem ise veritabanımızda ilişkileri yabancıl anahtarları mysql tarafında yapılması işlemlerinden bahsedeceğim. Alt kısımda yazmış olduğum kod ile kullanıcı silindiği zaman otomatik olarak makaleleri de veritabanından silinecek işlemleri yapacağız.

Üst kısımdaki kod blogunu inceleyelim öncelikle bu işlemi yabancıl anahtarın bulunduğu migrate işlemin yapılmayacağını unutmayalım. Kademe Kademe anlatalım öncelikle table(“authorities” kısmında foreign key’in bulunduğu tablonun adını yazıyoruz yani üst kısımdaki tablo customer_id kısmındaki yer ise mevcut tablodaki yabancıl anahtar’ın adını giriyoruz. customer_authorities_fk ise bu key’lerin tutulacağı görünmeyen bir tablo adı giriyoruz normalde girilmeyebilir ama birden fazla bu tarz işlemler olabileceğinden girilmesi uygundur. references(“id”) ise ilişki kuracağımız tablonun local anahtarının tutulduğu kolon adını giriyoruz on(“customers”) kodunda ise ilişkili olacak tablonun adını giriyoruz en son ise onDelete(‘cascade’); ise burada herhangi bir durumda yapılacak işlem hakkında bilgi veriyoruz biz bu işlemde customer silindiğinde ilgili yetkililerinide silmesi gerektiğini söylüyoruz. Bu silme yazılımsal değil tamamiyle veritabanında yapılan bir işlemdir.
Makalemi okuduğunuz için teşekkür ederim.
Bir sonraki yazımda görüşmek üzere hepinize sevgilerle.