Laravel Storage Kullanımı -3-
Hepinize merhaba dostlarım yine bir pazar günü ve yine yeni bir makale ile karşınzıdayım 😊. Bu haftanın nasıl hızlı geçtiğini ve makale gününün gelip çattığına emin olun anlam veremedim aşırı hızlı geçti 😅. Ama bu süre sonunda da mutluyum çünkü blog yazmayı ve makale yazmayı gerçekten seviyorum, ayrıca birçok yakın arkadaşımın şirketlere girmesi için mail yazılarında da bana ulaştığını açıkça söyleyebilirim 😊
Çenem düştü yine dostlarım kusuruma bakmayın 😊. Bu haftaki makalemizde ise sizlere sözüü verdiğim ve 3 seri halinde olacak olan Storage kullanımının son serisine gelmiş bulunmaktayız. Bu makalemde önceki 2 makaleme kıyasla biraz daha kısa olacaktır çünkü birçok storage konusunu işledik 😊. O halde sözü daha fazla uzatmadan dostlarım hızlıca proje ortamlarımızı ve sembolik linklerimizi oluşturalım ve filesystem driver kısmını public olarak ayarlayalım. Yavaştan yavaştan ilk konumuzla başlayalım
Dosya Boyutunu Alma (Byte Türünden)
Eveeeet dostlarım geldik storage kullanımı olaylarından en güzel kısmımıza. Bunu normalde ben storage kullanımında bir firmada stajyer olarak çalışırken ufak çaplı CRM üzerinde kodlamıştım. Kullanımı oldukça basit ve panel üzerinde byte türünden gösterilen, gerekirse fonksiyon yazarak MB veya KB olarak dönüştürülebilen bu yapıyı hemen incelyelim dostlarım 😊
Öncelikle ben storage/app/public klasörü içerisine mfsoftware.txt isimli bir dosya oluşturdum ve içerisine
MFSoftware Blog
Muhammed Fatih BAĞCIVAN tarafından 25.01.2021 tarihinde kurulmuştur
şeklinde metin yazdım. Daha sonra proje üzerinden gelip dostlarım web.php içerisinden kodlarımızı yazalım. Uzun uzun kalkıp da controller oluşturup, rotasyon tanımlayıp yapmamıza hiç gerek yok dostlarım işin mantığını kavramanızı istiyorum 😊. Hemen rotasyon dosyamız olan web.php ye ilerleyip
<?php
Route::get('/', function () {
$boyut = \Illuminate\Support\Facades\Storage::size('mfsoftware.txt'); // BYTE TURUNDE DONDURECEKTIR
dd($boyut);
});
şeklinde kodlarımızı yazdıktan sonra ekranımıza çıkacak olan sonuç
87
olarak bize geri dönecektir. Yani bu dosyamızın boyutu 87 byte imiş 😅. Bu kısım anlaşılmışsa dostlarım gelelim bir diğer konumuza 😊
Son Değişiklik Tarihi Alma
Eveeeet en ama en önemli bir konumuza geldik dostlarım 😊. Özellikle uzaktan eğitimin pandemi sonrası ile yaygınlaştığı zamanlarda uzem üzerinde olmazsa olmaz bir modül olarak yazıldığına bizzat şahit olmuştum. Ödevin yayınlandığından ne kadar süre sonra değiştirildiği vb bilgiler tutuluyordu. Bunun sektörel bir kullanımından örnek verecek olursam dostlarım sistem üzerinde bir dosyaların tutulması ve belirli bir zamana göre güncellenmesi gereken durumlar olabiliyor. Örneğin bazen veri tabanında ek bir tablo açmak yerine metin dosyası üzerinde ufak verileri (sayaç gibi vb) tutabiliyoruz. Burada sistemin çalışma durumunu ve sorunsuz çalışmasını test edeceğimiz zamanlar olabiliyor. Bu dosyanın son değişiklik tarihini de alma durumları bizi karşılıyor. İçinizden şunu diyorsunuz
Hocam bu efsane işlemi storage üzerinde ne olur gösterin 😅
Sizi mi kırcam dostlarım 😊. Hemen gösteriyorum. Ama öncelikle mfsoftware.txt dosyamızın içerisinde ufak bir değişiklik yapalım
MFSoftware Blog
Muhammed Fatih BAĞCIVAN tarafından 25.01.2021 tarihinde kurulmuştur
Hepinize iyi çalışmalar dileriz :) esen kalın
şeklinde en alt kısma bir metin daha ekledim. Daha sonrasında ise web.php içerisindeki kök rotasyonuma gelip
<?php
Route::get('/', function () {
$son_degisiklik = \Illuminate\Support\Facades\Storage::lastModified('mfsoftware.txt');
dd($son_degisiklik);
});
olarak yazarsam ekranıma gelecke olan çıktı
1665140046
şeklinde olur. Bu aslında yanlış değil dostlarım herhangi bir hata yapmadık 😊. Sadece değişitirilme tarihini bize unix timestamp türünde verdi. Hemen bunu da sağlıklı bir şekilde alma türünü de göstereyim dostlarım size. Kodlarıma gelip
<?php
Route::get('/', function () {
$son_degisiklik = date("Y-m-d",\Illuminate\Support\Facades\Storage::lastModified('mfsoftware.txt'));
dd($son_degisiklik);
});
şeklinde kodlarımı düzelttiğimde ve çalıştırdığımda ekranıma gelecek olan sonuç
2022-10-07
şeklinde olacaktır. Bütün olay bu şekilde dostlarım 😊. Gelelim bir diğer kısmımıza
Dosya Kopyalama
Özellikle hosting ve sunucu panellerinde sıklıkla karşılaştığımız bir konudur dostlarım karşınıza elbet çıkmıştır. Büyük projelerde de birkaçında görmüştüm bu olayı ama biraz karışık 😊. Size hosting paneli kısmından örnek vereyim diyorum
Nasıl ki bir dosya oluşturduğumuzda bir üst klasöre veya diğer alt klasörlere kopyalıyorsak bu işlemde de aynısını yapabiliriz. Şimdi sizinle beraber oluşturduğumuz mfsoftware.txt yi hızlıca kopyalayalım ve yeni dosyamızın ismi de seyyaryazilimci.txt olsun 😊. Rotasyon dosyamıza gelelim ve kodlarımızı
<?php
Route::get('/', function () {
$sonuc = \Illuminate\Support\Facades\Storage::copy("mfsoftware.txt","seyyaryazilimci.txt");
dd($sonuc);
});
şeklinde yazalım. Karşımıza gelecek olan çıktı
true
şeklinde yani boolean tipinde veri dönecektir. Proje klasörümüze baktığıjmızda ise storage/app/public klasörü içerisinde
şeklinde bir sonuç karşımıza çıkacaktır. Dosyamızın içerisini açtığımızda ise
MFSoftware Blog
Muhammed Fatih BAĞCIVAN tarafından 25.01.2021 tarihinde kurulmuştur
Hepinize iyi çalışmalar dileriz :) esen kalın
şeklinde aynı mfsoftware.txt yi birebir kopyalamış ve işlemlerimizin sorunsuz bir şekilde tamamlandığını görüyoruz 😊. Gelelim bir diğer konumuza
Dosya Taşıma
Aynı şekilde dosya kopyalama işlemi gibi dostlarım bu da dosya taşımamıza yarıyor. Yien yukarıda anlattığım gibi sunucu, hosting panellerinde ve özellikle bu işlemi çok sık gördüğüm ERP yazılımında çok sık kullanılır. O halde nasıl yapıldığını öğrenmek için hemen kodlama kısmımıza geçelim 😊
<?php
Route::get('/', function () {
$sonuc = \Illuminate\Support\Facades\Storage::move('seyyaryazilimci.txt','seyyar/seyyaryazilimci.txt');
dd($sonuc);
});
şeklinde kodlarımızı yazalım. Kodlarımızı yazdıktan sonra ekranımıza gelecek olan çıktı yine boolean türünde olacaktır ve
true
ifadesini döndürecektir. Proje dizinimizde storage/app/public klasörünü incelediğimizde ise
şeklinde dosyamız sorunsuz bir şekilde taşınmıştır. İçeriğine de bakalım herhangi bir bozulma veya veri kaybı var mı diye
MFSoftware Blog
Muhammed Fatih BAĞCIVAN tarafından 25.01.2021 tarihinde kurulmuştur
Hepinize iyi çalışmalar dileriz :) esen kalın
veeee bingooooo 💯 sorunsuz bir şekilde bütün işlemlerimiz hallolmuş dostlarım 😊. Ne mutlu bize. Bu işlemler de bu kadar kolay ve tek satırda işlem bitiyor dostlarım. Gelelim bir diğer konumuza
Dosya Silme
Özellikle en dikkat ettiğim konulardan birisidir bu bende dostlarım. Sunucumu şişirmemek için gereksiz dosyaların biriktiğinde silinmesi için bu işlemi oldukça sık kullanırım ki siz de kullanın derim veya yedek alın öyle silin derim 😊. Şimdi akıllardaki soruya gelelim
Pekiiii bu işlem nasıl yaplıyor hocam galiba kopyalma ve taşıma işlemi gibi iki dk içinde yapılıyordur 😉
dediğiniz gibi aynı o şekilde tek satırda işlem bitiyor dostlarım. Hemen hızlıca storage/app/public/seyyar altındaki seyyaryazilimci.txt dosyasını silmeye gelelim. Web.php dosyamızı açalım ve hızlıca içerisine kodlarımızı yazmaya gelelim
<?php
Route::get('/', function () {
$sonuc = \Illuminate\Support\Facades\Storage::delete('seyyar/seyyaryazilimci.txt');
dd($sonuc);
});
şeklinde kodlarımızı yazdık dostlarım. Kodu çalıştırdımızda da kopyalama ve taşıma işlemlerinde olduğu gibi bu sefer de karşımıza boolean olarak sonuç dönecektir. Kodu çalıştıralım ve şu an benim karşıma
true
sonucu döndü. Dosyam silinmiş mi diye kontrol ediyorum ve ekranıma
şeklinde sonuç dönecektir. İşlemler bu kadar basit dostlarım 😊
Eveeeeet dostlarım 😊 Bu makalemde sizlere elimden geldiğince dilim döndüğünce "Laravel Storage Kullanımı" serimizin 3. ve son kısmını anlattım. Umarım faydalı olmuşumdur. Konu başlarda biraz karmaşık veya zor gelebilir dostlarım anlıyorum. Özellikle öğrenme süreci içerisinde bu gibi sonuçlarla karşılaşmanız son derece doğaldır. Bu süreç içerisinde sizlerden istediğim tek şey "İstikrarlı ve Azimli Olmalısınız, Bolca Pratik Yapmalısınız 😊". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır.
Aynı zamanda 25 Aralık 2022 de kurmuş olduğum seyyaryazilimci.com soru cevap sitesi de yayında dostlarım haberiniz olsun. Her zaman dediğim gibi sorular ve cevaplar belirli bir süre admin onayından geçerek sistem üzerinde yayınlanmaktadır dostlarım bilginiz olsun.
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊
Yazar Hakkında
Kendi Halinde Bir Backend Developer