如何在 laravel 5.6 中创建自定义帮助文件?

Posted

技术标签:

【中文标题】如何在 laravel 5.6 中创建自定义帮助文件?【英文标题】:How to create custom helper file in laravel 5.6? 【发布时间】:2018-09-04 12:36:26 【问题描述】:

当我使用 composer 创建自动加载帮助文件时,出现以下错误:

致命错误:composerRequireebefe31fc60fbe2897fba8c156ec310c():失败 需要打开 'D:\xampp\htdocs\common_module\vendor\composer/../../app/Http/helpers.php' (include_path='D:\xampp\php\PEAR') 在 D:\xampp\htdocs\common_module\vendor\composer\autoload_real.php 第 66 行

【问题讨论】:

您可以发布您的composer.json 文件吗?你的helpers.php 文件在哪里? 【参考方案1】:

如果你是 Laravel 或 PHP 的新手,让我们来看看你如何创建自己的帮助函数,这些函数会自动被 Laravel 加载。

在 Laravel 应用中创建 Helpers 文件

您可以根据需要组织帮助文件的位置,但是,这里有一些建议的位置:

app/helpers.php app/Http/helpers.php

我更喜欢将我的放在 app/helpers.php 中的应用程序命名空间的根目录中。

自动加载

无法自动加载 PHP 函数。但是,我们通过 Composer 提供了比使用 require 或 require_once 更好的解决方案。

因此 composer 有一个 files 键(它是一个文件路径数组),您可以在 autoload 中定义它:

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

向文件数组添加新路径后,您需要转储自动加载器:

 composer dump-autoload

(修改composer.json后使用此命令。)

现在在每次请求时都会自动加载 helpers.php 文件,因为 Laravel 在 public/index.php 中需要 Composer 的自动加载器:

require __DIR__.'/../vendor/autoload.php';

定义函数

在你的助手类中定义函数是很容易的部分,尽管有一些注意事项。所有 Laravel 帮助文件都包含在检查中以避免函数定义冲突:

if (! function_exists('env')) 
    function env($key, $default = null) 
        // ...
    

我更喜欢在我的应用程序助手中使用 function_exists 检查,但如果您在应用程序的上下文中定义助手,则可以放弃 function_exists 检查。

【讨论】:

【参考方案2】:

在旧版本的 Laravel 中,我执行以下操作:

    app 文件夹创建一个 Helpers 文件夹 创建类YourHelper类文件 在该类文件中将命名空间设置为 App\Helpers 为类文件命名 在 config/app.php 中的别名中创建一个别名(这样您也可以在视图中调用帮助程序)'YourHelper'=>'App\Helpers\YourHelper::class'

【讨论】:

完美!正是我需要的!谢谢!【参考方案3】:

以下是在 Laravel 5.5 中创建自定义助手的步骤

步骤:1 创建 app/helpers.php 文件

首先,在 app/helpers.php 路径中创建一个帮助类文件,在这个文件中,我们将任何自定义帮助类逻辑写入函数中。

步骤:2 在 composer.json 文件中添加 app/helpers.php 文件

现在,我们在 composer.json 文件中添加我们的 app/helpers.php 文件作为自动加载部分。

"autoload": 
    "classmap": [

         ...

     ],

    "psr-4": 

         "App\\": "app/"

    ,

    "files": [

         "app/helpers.php" //Add This Line

    ]
,

完成此操作后,一旦我们运行以下命令。

作曲家转储自动加载

更多请访问以下链接

访问How To Create Custom Helper In Laravel 5.5

希望对你有帮助……

【讨论】:

很高兴听到这个消息:)

以上是关于如何在 laravel 5.6 中创建自定义帮助文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 4.2 中创建自定义 DB Query Builder 方法

Laravel JSON API: 如何从数据库中创建自定义的虚拟资源(用于聚合值)?

如何在 Flutter 中创建自定义下拉列表?

如何在 Wordpress 管理面板中创建自定义 HTML 表单?

如何在 Laravel 迁移中创建自引用关系(外键)?

如何在 Java 中创建自定义 GUI 组件? (需要开始提示)