Как создать метод, который можно использовать везде в Laravel - PullRequest
0 голосов
/ 12 апреля 2019

Я хочу внести некоторые изменения в даты, например, я хочу взорвать его, выполнить какую-то операцию и снова взорвать его, и я хочу использовать его во всем приложении, так что вот мой код:

$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 ]

1 голос
/ 12 апреля 2019

Вы можете создать файл 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();
1 голос
/ 12 апреля 2019

создайте функцию в файле php и добавьте ее в файл composer.json внутри атрибута "автозагрузка", например:

"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 () в любом месте вашего проекта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...