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.
Bunu paylaş:
Twitter
Facebook
Bunu beğen:
Beğen Yükleniyor...
Etiketler helper, laravel, laravel custom helper, laravel helper, laravel özel helper	
“Laravel Özel Helper Dosyası Oluşturmak” ile ilgili 2 görüş	
Boran 29 Aralık 2020 saat 17:57 itibariyle
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.
Yükleniyor...
Yanıtla ↓	
Koray SADIKLAR Yazının yazarı 2 Ocak 2021 saat 03:21 itibariyle
Evet global da helper şart. Trait kullanmadım ya da daha ihtiyacım olmadı henüz ama incelerim 🙂 makale de paylaşırım güzel bir örnek bulursam.