نحوهی ایجاد Helper شخصی در لاراول و فعالسازی آن روی سرورهای بدون دسترسی SSH
قصد دارم یک Helper شخصی در لاراول ایجاد کنم که اعداد فارسی و عربی را به اعداد انگلیسی تبدیل کند. پس باید Helper خود را در app ایجاد کنم. من ترجیح میدهم Helper خود را به این شکل در مسیر مربوطه ایجاد کنم:
app/Helpers/Helpers.php
حالا داخل فایل هلپر ایجاد شدهی بالا، فانکشن مورد نظرم را قرار میدهم:
<?php
if (!function_exists('toEnNumber')) {
function toEnNumber($input)
{
$replace_pairs = array(
'۰' => '0', '۱' => '1', '۲' => '2', '۳' => '3', '۴' => '4', '۵' => '5', '۶' => '6', '۷' => '7', '۸' => '8', '۹' => '9',
'٠' => '0', '١' => '1', '٢' => '2', '٣' => '3', '٤' => '4', '٥' => '5', '٦' => '6', '٧' => '7', '٨' => '8', '٩' => '9'
);
return strtr($input, $replace_pairs);
}
}
حالا باید کاری کنم که بتوانم از این هلپر و فانکشن مربوطه در تمام پروژهی خود استفاده کنم. یکی از سادهترین راههای این است که در فایل composer.json، فایل خود را معرفی کنم. پس ابتدا در این فایل قسمت زیر را پیدا میکنم:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
و در نهایت آن را به شکل زیر و با توجه به نحوهی ایجاد هلپرم ویرایش میکنم:
"autoload": {
"files": [
"app/Helpers/Helpers.php"
],
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
در نهایت کافی است دستور زیر را اجرا کنم و کار تمام است:
composer dump-autoload
تغییرات اعمال شده و در هر جای پروژه تابع ایجاد شده را صدا بزنم، عمل خواهد کرد.
نکته: به بزرگی و کوچکی حروف دقت شود. ممکن است در ویندوز مشکلی پیش نیاید، اما در لینوکس میتواند دردسرساز باشد.
حالا شاید قصد داشته باشیم پروژهی خود را به Host اشتراکی که در آن دسترسی به SSH نیز نداریم، انتقال دهیم. راه چاره چیست؟
اگر کل پروژه را انتقال دهیم که مشکلی نیست. اما اگر قبلاً پروژه وجود داشته و قصد به روز رسانی آن را داریم، کافی است طبق موارد بالا هلپر را ایجاد کرده و فایل composer.json را نیز ویرایش کنیم. سپس به دلیل اینکه امکان اجرای composer dump-autoload را نداریم، دو فایل موجود در پوشهی vendor/composer را به روزرسانی کنیم:
autoload_classmap.php
autoload_static.php
کار تمام است و پروژه باید به درستی اجرا شده و تابع یا به اصطلاح Helperهای ما هم سمت کنترلر و هم ویو قابل استفاده باشند.
توی وبسایتم سعی میکنم محتوایی که تصور کنم ارزشمنده و به بقیه کمکی میکنه رو منتشر کنم. امیدوارم از مطالب وبسایت بتونید استفاده کنید و به کارتون بیاد. در ضمن اگه پروژهی تحت وبی دارید که نیاز به برنامهنویسی و اجرا داره، میتونید با شماره انتهای صفحه با من تماس بگیرید تا در موردش با هم صحبت کنیم.