Laravel Özel Helper Dosyası Oluşturmak

Laravel ile yine bir proje üzerinde çalışırken ihtiyaç gereği bir helper dosyası oluşturmam gerekti. Daha önce ihtiyaç olmamıştı ancak projenin büyüklüğü ve ihtiyaç doğrultusunda tekrarlayan şeyler için bazı global fonksiyonlar tanımlamak gerekiyor.

Benim kullanmak istediğin proje bir e-ticaret sistemiydi. Örnekle açıklayacak olursak ürünün bir gerçek fiyatı var ve birde kampanyalı fiyatı var. Ve bunu anasayfa, ürün detay sayfası, arama sayfası, sepet sayfaları derken bir çok yerde kullanmam gerekiyor. Koşullar ve düzenlemeler derken 15-20 satırlık bir blok oluşuyor ve çok kaba gözüküyor.

İşin aslı yazılımcıyız ve kısa bir yol ve sürdürebilirlik açısından temiz ve mantıklı da kod yazmak gerekiyor. Kısaca ürünün ID değerini fonksiyona göndersem direk bana ürün fiyatını ya da kampanyalı fiyatı kontrol edip uygun olan sonucu dönse ne güzel olurdu değil mi 🙂 Olmaz mı hadi öğrenelim o zaman.

Helper Dosyası Oluşturmak

Öncelikle araştırmalarıma göre genellikle helper dosyalarını App klasörünün altında topluyorlar. Ancak bu konuda özgürüz sanırım. Çünkü yolunu kendimiz belirliyoruz. Ama ben yine geleneği bozmadım ve App klasörünün altına bir Helpers klasörü açtım ve Helper.php adında bir dosya oluşturdum.

App Klasöründe Helpers klasörünün oluşturulması

Helper.php dosyasında istediğiniz kadar farklı işlevleri olan fonksiyonlar tanımlayabilirsiniz. İşlemler tamamlandığında tüm fonksiyonlara global olarak projenin her yerinden ulaşabiliyor olacaksınız. Mesela ürünlerinizin SEO url için kullandığınız slug oluşturan bir fonksiyon kullanabilirsiniz. Ya da Türkçe karakterleri değiştiren bir replace fonksiyonu. Bu örnekler çoğaltılabilir. Bu dosyaları yaptık ama proje de bunu nasıl göstereceğiz kısmına geldik.

Dosyaları oluşturduk ama Laravel bu helper dosyasını tanımıyor. Bir yere yolunu da tanımlamadık. Hemen yardımcı oluyorum.

Composer.json Düzenlemesi

Proje klasörümüzün kök dosyalarının bulunduğu yerde composer.json dosyasını bulup açıyoruz.

Proje dizininde composer.json dosyasının konumu

Açtığımız dosya da “autoload” kısmını bulup alt satıra bir kaç ekleme yaparak eklediğimiz klasör ve dosyanın isimleri neyse tam yolunu yazıyoruz. Eğer farklı bir konumda tanımlama yaptıysanız lütfen onu yazınız.

"files": [
   "app/Helpers/Helper.php"
]

Ekledikten sonra şu şekilde gözükmesi gerekiyor.

composer.json düzenlemesi

Son olarak projemizin komut satırına giderek şu komutu çalıştırarak Laravel’e dosyamızı tanıtmış oluyoruz.

composer dump-autoload

Bunu yaptıktan sonra artık Helper.php içerisindeki tüm fonksiyonlara projeni her yerinden (Controller, blade vb.) ulaşıp kullanmanız mümkün.

Faydalı olması dileğiyle.

Mutlu kodlamalar.

Laravel Özel Helper Dosyası Oluşturmak” ile ilgili 2 görüş

  1. Boran

    Bende helpers mutlaka kullanırım, rahat oluyor. Ancak burada Trait önerenlerde var. Onunla ilgili de küçük bir makale yazsanız hoş olur. 🙂

    Anlayabildiğim kadarıya; helper içinde geçen yöntemi ezemezken, Trait içindekini ezebiliyoruz, aralarındaki temel fark bu.

    Sanırım bazı controllerda değişiklik yapmak istediğimiz bir durum olursa Trait daha mantıklı gibi. Ama sabit global bir şey olacaksa, helper.

    Yanıtla

Bir Cevap Yazın