JWT Token

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.
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 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 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 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.
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.