Laravel 5 中的辅助函数

Helper function in Laravel 5

我有一个函数可以给我一个 guid。但是,我不知道如何在 Laravel 5 中实际实现它,所以我可以在我的控制器中使用它。

这是函数:

function getGuid() {
    return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
        mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
        mt_rand( 0, 0xffff ),
        mt_rand( 0, 0x0fff ) | 0x4000,
        mt_rand( 0, 0x3fff ) | 0x8000,
        mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
    );  
}

我如何实现它,以便我可以从我的控制器访问它?

在您的应用程序目录中创建一个 helpers.php 文件并包含以下行:

    "files": [
        "app/helpers.php"
    ]

到您的 composer.json 自动加载:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\": "app/"
    },
    "files": [
        "app/helpers.php"
    ]
},

您可以随意将函数代码放在项目中的任何位置。 例如在 App/Support/helpers.php 文件中,然后将此文件添加到 composer.json autoload.files 部分。并且此功能将在您的项目中可用。

您的作曲文件的自动加载部分将如下所示

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\": "app/"
    },
    "files": [
      "app/Support/helpers.php"
    ]
},

Laravel 对这个 helper functions 做了同样的事情,看看 vendor/laravel/framework/composer.json 文件,你会看到这个

"autoload": {
    "classmap": [
        "src/Illuminate/Queue/IlluminateQueueClosure.php"
    ],
    "files": [
        "src/Illuminate/Foundation/helpers.php",
        "src/Illuminate/Support/helpers.php"
    ],
    "psr-4": {
        "Illuminate\": "src/Illuminate/"
    }
},

不要忘记在更改后调用 composer dump-autoload