وقتی پروژه ای را پیاده سازی میکنیم بعد از پیاده سازی ساختار پروژه، به فایلهایی همچون config فکر میکنیم که در تمام بخشهای پروژه فراخوانی شود و فایلی رو داشته باشیم که قبل از نمایش صفحه فانکشنهایی برای آن پروژه اجرا شود.
اخیرا در پروژه ای که با لاراول پیاده سازی شده بود، نیاز داشتم که یک فانکشن در تمام بخشهای پنل کاربری اجرا شود. برای اینکار نیاز به یک فایل به نام Helper داشتم که قبل از اجرای صفحه لود شود و موارد موردنیازم را بررسی و اجرا نماید. پس فایل کاستوم Helper را ایجاد کردم.
مسیرهایی که برای این فایل در نظر گرفته میشود معمولا یکی از دو مورد زیر است :
app/helpers.php
app/Http/helpers.php
لازم است که این فایل را در کل پروژه فراخوانی کنیم.
require_once ROOT . '/helpers.php';
ولی در لاراول میتوانیم از یک راه جذابتر استفاده کنیم و مسیر فایل Helper را در فایل composer.json لاراول ( autoload ) تعریف کنیم.
"autoload": { "files": [ "app/helpers.php" ], "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\\": "app/" } },
بعد از اینکار کامند زیر را اجرا میکنیم :
composer dump-autoload
با اینکار فایل helper.php در تمام کنترلرهایی که داریم در دسترس است و میتوانیم استفاده کنیم به این خاطر که وقتی مسیر فایل را در autoload کامپوزر لاراول قرار دادیم و چون autoload لاراول در مسیر public/index.php به صورت زیر قرار میگیرد پس فایل helper نیز در دسترس قرار میگیرد :
require __DIR__.'/../vendor/autoload.php';
بعد از ایجاد فایل Helper لازم است به صورت زیر تابعهایی که نیاز داریم را تعریف کنیم :
if (! function_exists('function_name')) { function function_name($key, $default = null) { // ... } }