Как создать метод, который можно использовать везде в Laravel
Я хочу внести некоторые изменения в даты, например, я хочу взорвать его, выполнить некоторую операцию и снова взорвать его, и я хочу использовать все это в моем приложении, так что вот мой код:
$divided_date = explode('/', $request->point_date);
$converted_date = Verta::getGregorian($divided_date[0], $divided_date[1], $divided_date[2]); // [2015,12,25]
$begindate = implode('/', $converted_date);
Я хочу создать функцию с именем DateConvertor(), например, и везде, где я хочу преобразовать дату, я использую что-то вроде ниже.
$request->somedate()->DateConvertor();
или например
Dateconvertor($request->someday);
И он возвращает конвертированную дату, так что теперь я не знаю, использовать статический метод или нет, и я не знаю, где его определить, чтобы я мог использовать его во всех моих приложениях, а не только в одной модели.
2 ответа
Вы можете создать Helper.php
файл и в composer.json
включить этот файл как
"files": [
"app/Helpers/Helper.php",
]
или может добавить вспомогательный класс, такой как
<?php
namespace App\Helpers;
class Helper
{
public static function foo()
{
return 'foo';
}
}
а также config/app.php
'aliases' => [
....
'Helper' => App\Helpers\Helper::class,
]
а затем использовать как Helper::foo();
или добавить поставщика услуг, как
php artisan make:provider HelperServiceProvider
в методе регистра
public function register()
{
require_once app_path() . '/Helpers/Custom/Helper.php';
}
В config/app.php
providers =
[
'CustomHelper' => App\Helpers\Custom\Helper::class,
]
а также
'aliases' => [
'CustomHelper' => App\Helpers\Custom\User::class,
]
затем использовать как
CustomHelper::foo();
Создайте функцию в файле php и добавьте ее в файл composer.json внутри атрибута "autoload", например:
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/Helpers/CustomHelper.php"
]
}
и беги composer dump-autoload
Здесь, здесь - CustomHelper.php это файл, я хочу, чтобы автозагрузка и их функции можно было использовать в любом месте вашего проекта
CustomHelper.php
<?php
if (! function_exists('getOTP')) {
function getOTP()
{
return str_pad(rand(0, pow(10, 4) - 1), 4, '0', STR_PAD_LEFT);
}
}
?>
Теперь вы можете вызывать функцию getOTP() в любом месте вашего проекта.