توسعه دهنده Back-End
ایجاد Helper سفارشی در لاراول
همانطور که گفتم خود لاراول Helper های پیش فرض زیادی دارد که از هسته خودش هم از آنها استفاده کرده که بر اساس کاربردشان در دسته های مختلف گروه بندی شده اند و به احتمال زیاد شما هم از آنها در کد هایتان استفاده کرده اید. هلپر هایی مثل ()view یا ()route و یا ()asset
خیلی از جاها ما نیاز داریم که یکسری کارهای رایج و متداول رو انجام بدهیم مثل: تبدبل اعداد انگلیسی به فارسی یا تبدیل تاریخ میلادی به شمسی یا مثلا دوست داریم یک فانکشنی داشته باشیم که بدون ایجاد یا نمونه گرفتن از یک کلاس یکسری کارهای تکراری مثلا لاگ گرفتن رو برای ما انجام بده. اینطور موارد ما ما اصطلاحا یک هلپر تعریف میکنیم.
ایجاد Helper سفارشی در لاراول
خب حالا که درکی نسبی از helper ها و کاربرد آنها داریم اینجا به سراغ این می رویم که چطور helper دلخواه خودمون رو بتونیم اضافه کنیم و از آن در همه جای اپلیکیشن استفاده کنیم.
مثلا فرض کنید که ما helper ای میخواهیم اضافه کنیم برای تولید یک کد رندوم برای استفاده به جای session یکتا
فایل جدیدی می سازیم در پوشه app به نام helpers.php و فانکشن خودمون رو بدین صورت اضافه کنیم:
<?php
/**
* Generates a random unique number
*
* @return int
*/
function generateSession()
{
return explode(' ',microtime())[1];
}
?>
خب حالا که helper خودمون ر و تعریف و ایجاد کردیم سوال این می شود که حالا چطور باید آنها رو به اپلیکیشن خودمون اضافه کنیم و autoload بشوند. که چندین راه برای این منظور وجود دارد.
اضافه کردن فایل به قسمت files در فایل composer.json
زمانی که تعداد کمی helper دارید و یک فایل کفایت می کند از این روش استفاده کنید.
"autoload": {
"files": [
"app/helpers.php"
]
}
اتولود کردن کل پوشه helpers در فایل composer.json
ممکن است شما هم helper های خودتون رو در فایل های مختلف دسته بندی کنید مثلا ArrayHelpers.php یا ImageHelpers.php و ... در این صورت کل پوشه رو autoload کنید.
"autoload": {
"classmap": [
"database",
"app/helpers"
],
}
اضافه کردن service provider به لاراول و رجیستر کردن فایل helper در آن
با این روش فایلهای هلپر رو یه همراه دیگر وابستگی ها یا همون dependancy ها رجیستر می کنید. این روش خیلی حرفه ای تر و قابل نگهداری تر است.
به طور مثال:
app/Helpers/HelperServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class HelperServiceProviderextends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
require_once app_path() . '/Helpers/ArrayHelpers.php';
}
}
و بعد از رجیستر کردن service provider در فایل کانفیگ app.php می تونید از آن ها به راحتی استفاده کنید.
با استفاده از یکی از دو روش ابتدایی که مشکلی برای استفاده از آنها نداریم در نهایت می توانیم بدین صورت از تابع ()generateSession استفاده کنیم:
generateSession(); // 1101549257123
نتیجه گیری
امروز با ساختار و نحوه تعریف helper های جدید در لاراول آشنا شدیم، من مطمئن هستم به شما به عنوان توسعه دهنده حتما سراغ helper های سفارشی و جدید در لاراول خواهید رفت. قطعا کاربرهای بیشتر و بهتری برای تولید helper های جدید وجود دارند. خب امدوارم از مبحث امروز هم لذت برده باشید.
مطلبی دیگر از این انتشارات
مقایسه سرعت لاراول و کدیگنایتر
مطلبی دیگر از این انتشارات
دستهبندی مدلهای الکوئنت در فریمورک لاراول
مطلبی دیگر از این انتشارات
تفاوت متد report و render در اکسپشنهای لاراول