JWT Token

JWT yani Json Web Token, sistemler arasında kimlik doğrulaması için kullanılan bir tekniktir. Kısaca örneklemek gerekirse server'dan servis ettiğiniz API olduğunu, mobil app ve web sitesi tarafından bu API kullanıldığını düşünün. Sisteme giriş yapan kullanıcıyı doğruladıktan sonra her istekte server tarafında kimlik doğrulaması yapmanız gerekecek. İşte JWT tam olarak burada devreye giriyor. Giriş yapan kullanıcıya bir token veriyorsunuz. Client sonraki tüm istekleri bu token ile birlikte yapıyor. Eskiden bu iş için session kullanıyorduk. Şimdi ise client'ların kullanıldığı platformlar çoğaldığı için üretilen verileri json olarak sunarak her platforma uyumlu şekilde çıktı veriyoruz. Dolayısı ile kimlik doğrulama sisteminin de güncel bir hal alması gerekiyordu ki tüm client'lar tarafından kullanılabilsin.

Laravel Cron

Bu yazıda Laravel’le yaptığınız bir uygulama da zamanlanmış görevlere ihtiyacınız olduğunda kullanılan bir teknikten bahsedeceğim. Diyelim ki saatte bir çalıştırmanız gereken bir kod blogunuz var. Linux sistemlerde Shell Script yazıp crontab’a ekleye bileceğiniz gibi bu işlemi Laravel’le de yapabilirsiniz. Lafı fazla uzatmadan başlayalım. İlk olarak işi yapacak command‘i oluşturalım. bunun için terminale aşağıdaki artisan komutunu yazın.

Mysql Transaction

Transaction kısaca sıralı işlemlerdir. Bir biri ile ilişkili bir den fazla SQL çalıştıracağınız zaman kullanılır. Amaç sorgulardan birisinde sorun olursa ilişkili tüm sorguları geri çekmektir. Eğer bütün sorgular doğru çalıştıysa MySql'e işler. Transaction sadece MySql'de kullanılan bir teknik değildir. Hemen her veri tabanında mevcuttur. PHP veya Python tarafında ise testler sırasında girilen verilerin temizlenmesi için kullanılabilir.

Laravel Queue (Kuyruk)

Laravel ile yapılan projelerde bazen işlemleri kuyruklamak gerekebiliyor. Yapılacak işlemin sonucunu response dönmek gerekmiyorsa ve requests olağandan fazla ise işlemleri kuyruklamak gelen tüm request'leri işleyebileceğiniz anlamına gelir. Bir yandan gelen request'leri kuyruğa atarsınız diğer bir yandan ise sıra ile işlersiniz. Veriyi işlemek için yazdığınız kodu (Worker) çoklu şekilde çalıştırarak veri işleme hızınızı da arrtırabilirsiniz.

Queue işlemi basitçe şöyle çalışıyor. bir Job oluşturuyorsunuz. yapılacak işlemleri redis queue atıyorsunuz. artisan work komutu ile queue ve Job'u belirterek verileri sırası ile işlemeye başlıyorsunuz.

Laravel’de kullanıcı işlemlerini loglamak

Laravel ile geliştirdiğiniz projenizde bazı işlemlerin log'lanmasına ihtiyaç duyabilirsiniz. Kayıt oluşturma, düzenleme, silme gibi işlemlerin hangi kullanıcı tarafından gerçekleştiğini bilmek önemli. Bu işlem için ben activityLog kütüphanesi kullanıyorum. Kullanımı oldukça basit olmasına karşın oldukça iş görüyor. Lafı fazla uzatmadan nasıl kullanıldığına geçmek istiyorum.

Python virtual environment (venv)

Python librarie'lerini pip ile kuruyoruz. Librarie kurarken pip, python'ın kurulu olduğu environment'a kurulum yapıyor. Dolayısı ile projeler birbirini etkileyebiliyor. Projelerin taşınılabilirliğini de etkiliyor. Projeyi taşıdığınızda bir sürü kurulum yapmanız gerekiyor. Bu sorunun çözümü için virtual environment'ı kullanıyoruz. Her projenin kendi environment'ı kendi içerisinde oluyor.

Laravel’de validasyon

Marhaba laravel'de bir kaç farklı validasyon yöntemi var. Bunlardan benim en çok kullandığım yöntem FormRequest ten türetilmiş, bir Request class'ı oluşturarak validaysonu bu class içerisinde yapmak. Böylelikle hem kod daha temiz ve okunaklı oluyor hem de daha sonra değişiklik yapmak kolaylaşıyor. Gelelim nasıl yapıldığına. Terminalden artisan kullanarak Request'imizi oluşturalım.