Php Laravel组织辅助函数

Php Laravel组织辅助函数,php,laravel,Php,Laravel,请不要在回答中与技术人员交谈:-D我不是一个硬核程序员 在Laravel中存储某些函数的好方法是什么?我有一些只适用于“post”或“media”的函数,比如getAttributeList或getComponents。我之所以说“Post”和“Media”,是因为它们都有自己的控制器、模型和视图。把它放在模型中感觉不对,因为那应该是数据库的东西,对吗?而特征更适合于各地重复出现的功能,对吗?所以,现在我有一个名为Helpers.php的大文件。而且,它越来越大了。。。我是否应该在PostHel

请不要在回答中与技术人员交谈:-D我不是一个硬核程序员


在Laravel中存储某些函数的好方法是什么?我有一些只适用于“post”或“media”的函数,比如getAttributeList或getComponents。我之所以说“Post”和“Media”,是因为它们都有自己的控制器、模型和视图。把它放在模型中感觉不对,因为那应该是数据库的东西,对吗?而特征更适合于各地重复出现的功能,对吗?所以,现在我有一个名为Helpers.php的大文件。而且,它越来越大了。。。我是否应该在PostHelpers.php、mediahelopers.php等中简单地将其分开?或者在Laravel中有没有更优雅的方法呢?

在您的composer json文件中,检查这个片段

"autoload": {
        "files": [
                "app/Helpers/global_helper.php"
            ],
正如您所看到的,我已经在一个名为Helpers的文件夹中自动加载了一个名为
global\u helper.php的文件,现在在这个文件中,我有一个名为
loadHelper(…$files)
这个函数的作用是

if (!function_exists('loadHelper')) {
    function loadHelper(...$file_names)
    {
        foreach ($file_names as $file) {
            include_once __DIR__ . '/' . $file . '_helper.php';
        }
    }
}
您可以将文件名作为数组或字符串传递,它会将这些文件包含到控制器构造函数中

因此,在我的控制器中,每当我需要某个助手函数时,我都会为该控制器创建一个saperate助手文件,然后在构造函数中包含它

我不确定是否有更好的解决方案,但到目前为止,这是我如何使我所有的项目


我希望这对你有帮助;)

非常简单:只需检查你应用程序根目录下的composer.json文件。并在“自动加载”部分下添加:

 "autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "files": ["app/helper.php"],
    "classmap": [
        "database/seeds",
        "database/factories"
    ]
“files”:[“app/helper.php”],这是您需要添加到ur composer文件中并提供文件路径的行。 在我的例子中,我在App目录中创建了一个helper.php文件,在那里我保存了所有函数。 在此之后,运行此命令: 作曲家转储自动加载


现在你可以在任何地方访问你的功能。

谢谢希瓦姆,我现在就有了。所以我只是把它切成几个文件。但是,将助手文件转换为类(如Facade)是一个好主意吗?我认为这是个好主意,所以我不覆盖函数,也不必检查函数是否一直在其他地方激活。