Laravel'de Kendi Helper Sınıfımızı Oluşturmak
Herkese merhaba,
Bu yazımızda Laravel ile kendi Helper sınıfımızı oluşturmayı öğreneceğiz.
Bunu yaparken ne composer.json dosyamızda düzenleme yapacağız ne de composer dump-autoload komutunu kullanmamız gerekecek.
Öncelikle app klasörümüz içerisine Support adında bir klasör oluşturalım. İçine de Helper.php adında php dosyamızı oluşturalım.
Genel kullanıma uygun isimlendirmeyi tercih ettim. Siz tabii kendi istediğiniz isimlendirmeleri de yapabilirsiniz elbette.
Helper.php dosyamızın içeriği;
namespace App\Support; class Helper { /** * Get part of string. * @param string $string * @param int $start * @param int $end * @return string */ public static function shortString(string $string, int $start = 0, int $end = 35): string { return mb_substr($string, $start, $end, 'UTF-8').'...'; } }
Burada namespace tanımına dikkat etmemiz gerekiyor. Oluşturduğumuz dosya app/Support altında olduğu için bunu belirtiyoruz. Eğer farklı bir isimlendirme kullanacaksanız, bu kısma dikkat etmeniz gerekiyor.
Artık herhangi bir Controller içerisinde use app\Support\Helper; şeklinde Helper sınıfımızı dahil edebiliriz. Eğer bu import işini kısaltmak istersek, Alias tanımlaması da yapabiliriz.
Bunun için config/app.php dosyamıza gidiyor ve en aşağılarda bulunan Class Aliases kısmına geliyoruz. aliases olarak tanımlanmış dizinin sonuna Helper sınıfımızı dahil ediyor ve kısa isim(alias) veriyoruz:
'Helper' => App\Support\Helper::class,
Artık Controller içerisinde Helper sınıfımızı dahil etmek istediğimizde use Helper; yazmamız yeterli olacak.
Helper class'ı içerisine tanımlayacağınız STATIC fonksiyonlarınızı Laravel projenizin istediğiniz yerinde çağırabilirsiniz.
Örneği basit tutmak adına, PHP'nin Türkçe karakterleri de destekleyen mb_substr fonksiyonunu kullandık. Eğer bunu bir blade dosyası içerisinde çağırmak istersek;
{{ Helper::shortString($post->body,0,40) }}
şeklinde çağırabiliriz. Gönderdiğimiz ifadeyi başlangıçtan kırkıncı karaktere kadar alacak, diğer kısımları göstermeyecek.
Eğer bir Controller içerisinde kullanmak istersek de Controller içerisinde use Helper; tanımımızı girip, istediğimiz bir metod içerisinde Helper::shortString() şeklinde kendi Helper fonksiyonumuzu çağırarak işlem gerçekleştirebiliriz.
Bu yazımızda, Laravel'de kendi Helper sınıfımızı oluşturarak özel fonksiyonlarımızı tanımlamayı ve Laravel projemiz içerisinde kullanmayı gösterdik.
Bir başka yazıda görüşmek dileğiyle...