【问题标题】:Creating a Helper Class for Laravel Artisan Command为 Laravel Artisan 命令创建一个 Helper 类
【发布时间】:2019-04-02 17:51:21
【问题描述】:

我想知道为我的 Artisan 命令创建帮助程序类的最佳方法是什么。我希望帮助类包含一些静态/非静态函数,以减少代码重复以及命令的大小并提高代码的可维护性。我有 App/Library 文件夹,我更喜欢在其中放置助手类。

【问题讨论】:

  • 可能重复,这里已经回答了这个问题:stackoverflow.com/questions/28290332/…
  • 我查看了该帖子并查看了所有答案,但没有一个提到任何有关工匠命令的内容,我想知道是否有任何最佳实践和/或最佳方法可以为工匠命令执行此操作。

标签: php laravel laravel-5.5 laravel-artisan laravel-helper


【解决方案1】:

在您的 app/Library 文件夹(或您选择的任何位置)中创建一个 helpers.php 文件,并将以下内容添加到其中:

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

之后,在命令行上运行以下命令:

composer dump-autoload

您现在可以通过在 helpers.php 上定义函数来添加函数

【讨论】:

  • 能否请您告诉我这种方法与在 App/Library 中创建 helper.php 然后将其导入带有“use”关键字的类有什么区别。您的方法是否还需要“使用”。以及为什么它们中的任何一个在性能、安全性、最佳实践方面都比另一个更好?
  • 这使它在全球范围内可用。你不需要“使用”。试试看。
  • 所以如果我不希望它在全球范围内可用并且想在我想使用它时导入它,我的方法会好吗?在 composer 中不自动加载类有什么缺点吗?
  • 助手的本质是具有全局可用的实用功能。如果您不希望它们是全局的,那么您可以像往常一样创建一个模型,并将方法添加到模型中。然后你可以在什么时候导入它们。
【解决方案2】:

Laravel 包含各种全局“帮助”PHP 函数。许多 这些功能由框架本身使用;然而,你是 如果您觉得方便,可以在您自己的应用程序中免费使用它们。 Laravel documentation on Helper functions

网上有很多资源可以帮你解决这个问题,我推荐this

【讨论】:

  • 谢谢@Elisha,我在字面上使用“帮助者”这个词。我知道 laravel 辅助函数,并在一定程度上使用它们。但是我的问题是关于创建自己的帮助类的最佳方法,我可以编写自定义函数并在我的工匠命令中使用它们
猜你喜欢
  • 2015-04-14
  • 2014-04-01
  • 1970-01-01
  • 2018-12-19
  • 2016-02-07
  • 1970-01-01
  • 2018-02-21
  • 2015-12-24
  • 1970-01-01
相关资源
最近更新 更多