Laravel Storage Kullanımı -3-

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 😊

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıLaravel Storage Kullanımı -2-
Sonraki YazıVue.js Attribute Binding İşlemi
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz