Как создать метод, который можно использовать везде в 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() в любом месте вашего проекта.

Другие вопросы по тегам