تعداد بازدید: 2026

Helpers Functions

لاراول علاوه بر تعیین نحوه عملکرد اپلیکیشن و همچنین خط مشی نحوه پیاده سازی اپلیکیشن یه سری تابع کمکی هم در اختیار ما قرار می دهد . این توابع در هسته خود لاراول نیز استفاده شده است.

ما از این توابع می توانیم در طول اجرای اپلیکیشن controller , view , model می توانیم استفاده کنیم.

همچنین شما می تونید با رعایت قواعد مربوطه Helper Fuction خودتان را ایجاد کنید. برای این منظور باید تابعی ایجاد کنید که تمامی ویژگی های بالا را داشته باشد. یعنی در تمامی مراحل برنامه قابل استفاده باشد.

انواع Helper Functions

بر اساس کاربردها این توابع به دسته بندی های مختلفی تقسیم بندی می شوند :

  • Arrays : این دسته از توابع مربوط به کار با آرایه ها می شوند. کارهایی از قبیل مرتب سازی ، جستجو ، ویرایش ، افزودن ، حذف و … را با این توابع می توان انجام داد. دسترسی به اعضای آرایه در ساختار blade بهتر است با فرمت مربوطه خود آن یعنی dot (.) انجام پذیرد.
  • Paths : توابع مربوط به دسترسی به مسیرهای دایرکتوری های مختلف اپلیکیشن نظیر به دست آوردن مسیر دایرکتوری تنظیمات (config_path) و یا قسمت public . دقت داشته باشید در این دسته از توابع ما مسیر ها را بدست می آوریم و با URL متفاوت می باشند. همان طور که می دانید مسیر یا PATH از دایرکتوری های سیستم عامل شروع می شود و URL با دامنه شروع می شود. برای فراخوانی فایل ما از مسیر استفاده می کنیم.
  • Strings : توابع مربوط به کار با رشته ها. زمانی که بحث کار با رشته ها می شود به دنبال آن می توانیم مسایل امنیتی را مطرح کنیم ، یعنی پاکسازی رشته ها از کدهای مخرب. این دسته از توابع شامل توابعی جهت کنترل رشته (مثلا این رشته در خود عبارت فلان را دارد یا نه –  true or false) و توابع ویرایش رشته (مثلا به انتهای رشته اضافه کن) و همچنین پاکسازی رشته ها (مثلا توابعی برای اعمال htmlentities)
  • URLs : توابع مربوط به url . این دسته از توابع برای بدست آوردن url های مورد نیاز ، مثلا آدرس assets ها . معمولا url ها همراه با پارامتر می باشند که می توان پارامتر های آن ها را نیز در این توابع جایگذاری کرد.
  • Miscellaneous : توابع متفرقه با موضوعات مختلف یا همان سایر توابع. این توابع شامل موارد مفیدی از جمله کار با authentication , csrf , session , request , response , redirect … می شوند.

نکته : ممکن است برخی توابع گفته شده را شبیه به نمونه خام PHP ببنید . این توابع با همان عملکرد و وفق داده شده با ساختار blade می باشند. البته باید بدانید که استفاده از توابع کمکی در طول برنامه (controller , model , view) مجاز است و محدود به view نمی باشد.

نکته : در زمان استفاده از توابع کمکی به نسخه لاراول خود دقت داشته باشید.

در ادامه ما به برخی از مهم ترین توابع کمکی می پردازیم . شما می توانید لیست توابع کمکی موجود در لاراول را مشاهده کنید.

Arrays & Objects

array_add : افزودن عضو به آرایه های انجمنی .

<?php
$array = array_add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]

array_dot : دسترسی به آرایه به شکل دسترسی به اشیا در جاوا (به وسیله dot) .

<?php
$array = ['products' => ['desk' => ['price' => 100]]];
$flattened = array_dot($array);
// ['products.desk.price' => 100]

Paths

همان طور که می دونید این دسته از توابع برای بدست آوردن مسیر هاست . اگر به عنوان ورودی به این توابع ادامه مسیر را بدهید خروجی نهایی می شود مسیر تابع + مسیر ورودی شما. به مثال زیر توجه کنید :

$path = app_path();
$path = app_path('Http/Controllers/Controller.php');

Strings

__ : تابعی کمکی برای ترجمه عبارات. از دو قسمت تشکیل شده که با dot بهم متصل است. قسمت اول نام فایل دوم رشته . در نتیجه یعنی از فایل messages رشته welcome ترجمه اش.

echo __('messages.welcome');

str_random : تولید رشته تصادفی به طول پارامتر ورودی.

$random = str_random(40);

str_slug : این تابع برای ساختن لینک از روی تیتر استفاده می شود. یعنی فاصله ها را به – تبدیل می کند.

$slug = str_slug('Laravel 5 Framework', '-');
// laravel-5-framework

URLs

action :‌ در تابع route ما بوسیله نام یک route می توانستیم URL آنرا بدست آوریم. در این تابع بوسیله action یا ترکیبی از نام کلاس و متد می توانیم URL را بدست بیاوریم. در این روش هم مثل تابع route اگر URL ما پارامتری قبول کند می توانیم آن را مقدار دهی کنیم.

$url = action('HomeController@index');
$url = action([HomeController::class, 'index']);

asset : این تابع URL دایرکتوری public رو میده. در تابع public_path ما مسیر را می گرفتیم . این تابع برای فراخوانی فایل های assets یعنی css,js,image بسیار مفید است.

<link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}">

route : این تابع URL را بر اساس نام route می دهد.

$url = route('routeName');

اگر URL مربوطه پارامتری در درون خود داشته باشد بوسیله این تابع می توان آن پارامتر را پاس داد و URL را ساخت.

$url = route('routeName', ['id' => 1]);

Miscellaneous

abort : این تابع HttpException تولید می کنه. همچنی تابعی داریم abort_if که تابع قبل رو به صورت شرطی اجرا می کنه. abort_unless دقیقا برعکس عمل می کنه. به مثال زیر توجه کنید.

abort(403);
//if user not admin authorization redirect to 403 page = if
abort_if(! Auth::user()->isAdmin(), 403);
//if user not admin authorization redirect to 403 page = else
abort_unless(Auth::user()->isAdmin(), 403);

auth : این تابع authenticator instance رو بر می گردونه. اگر به خاطر داشته باشید می تونستید با استفاده از Facade با نام Auth اطلاعات کاربر جاری رو بدست بیارید. این تابع کمکی هم همین کار رو برای شما می کنه.

$user = auth()->user();
// Get the currently authenticated user...
//$user = Auth::user();

در ضمن می تونید به عنوان ورودی به این تابع نوع guard لازم جهت authetication رو هم بدید . به صورت پیش فرض از تنظیمات پیش فرض config/auth.php اطلاعات را دریافت می کند.

<?php
$user = auth('web')->user();
// when using jwt auth system for api
$token = auth('api')->attempt(['email','password']);

config : بوسیله این تابع می تونید به تنظیمات موجود در اپلیکیشن دست پیدا کنید.

$value = config('app.timezone');

csrf_field : این فیلد یک inut از نوع hidden و با نام _token ایجاد می کنه در فرم ها می تونید از اون استفاده کنید. همچنین تابع csrf_token را داریم که تنها token مربوطه رو تولید می کنه.

{{ csrf_field() }}

با استفاد از تابع csrf_token هم می توان یک فیلد ساخت و نام آن را دستی انتخاب کرد.

<input type="hidden" name="_token" value="{{ csrf_token() }}">

env : دسترسی به تنظیمات فایل .env

$env = env('APP_ENV');
// Returns 'production' if APP_ENV is not set...
$env = env('APP_ENV', 'production');

redirect : این تابع برای redirect کردن کاربر است.

return redirect($to = null, $status = 302, $headers = [], $secure = null);
return redirect('/home');
return redirect()->route('route.name');

response : این تابع یک پاسخ را برای کلاینت ارسال می کند. در زمان استفاده از api ها و همچنین ارسال پاسخ در ajax از این تابع استفاده می کنیم.

<?php
return response('Hello World', 200, $headers);
return response()->json(['foo' => 'bar'], 200, $headers);

پارامتر اول Entity Body پارامتر دوم Status Code و پارامتر سوم Headers می باشد.

request : این تابع اطلاعاتی از شئ جاری ساخته شده از درخواست را می دهد. از این تابع در متد ها می توان استفاده کرد.

<?php
//return whole object
$request = request();
//return input bu key if is not return default value
$value = request('key', $default);
//return email and password in array
$credential = request(['email','password']);

 

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای Helpers Functions

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *