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

时间:2018-03-26 11:20:33

标签: laravel composer-php helper autoload

当我使用作曲家创建一个自动加载帮助文件时出现以下错误:

  

致命错误:composerRequireebefe31fc60fbe2897fba8c156ec310c():失败   需要开放   'd:\ XAMPP \ htdocs中\ common_module \厂商\作曲家/../../应用程序/ HTTP / helpers.php'   (include_path ='D:\ xampp \ php \ PEAR')in   D:\ xampp \ htdocs \ common_module \ vendor \ composer \ autoload_real.php on   第66行

3 个答案:

答案 0 :(得分:2)

以下是在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

    ]
},

完成此操作后,我们按照命令运行。

  

composer dump-autoload

更多访问以下链接

访问How To Create Custom Helper In Laravel 5.5

我希望这会对你有帮助......

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

如果您是Laravel或PHP的新手,让我们逐步介绍如何创建自己的帮助程序功能,这些功能会被Laravel自动加载。

在Laravel应用中创建助手文件

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

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

我宁愿将我的内容保留在应用程序名称空间根目录下的app / helpers.php中。

自动加载

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

因此作曲家有一个文件密钥(它是文件路径的数组),您可以在自动加载中定义它:

"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检查。