如何在Laravel中创建可在任何地方使用的方法

时间:2019-04-12 10:01:43

标签: php laravel laravel-5 laravel-5.8 laravel-helper

我想对日期进行一些更改,例如,我想爆炸它进行一些操作,然后再次爆破它,我想在我的应用程序中全部使用它,所以这是我的代码:

$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 个答案:

答案 0 :(得分:1)

在php文件中创建一个函数,并将其添加到“ autoload”属性内的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()函数

答案 1 :(得分:1)

您可以创建一个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();