如何在自己的laravel软件包中添加助手? (调用未定义的函数)

时间:2018-07-13 10:15:18

标签: laravel package

在我的composer.json文件中,我写了:

| Select Name

但是无论如何,即使在作曲家转储-自动加载之后,功能也不会加载。我得到“调用未定义函数”。为了创建包,我使用了package generator。也许它可以在供应商文件夹中创建符号链接?

我写的内部帮手

"autoload": {
    "psr-4": {
      "Pmochine\\MyOwnPackage\\": "src/"
    },
    "files": [
      "src/helpers.php"
    ]
  },

5 个答案:

答案 0 :(得分:2)

在包裹服务提供商中,尝试添加以下内容:

// if 'src/helpers.php' does not work, try with 'helpers.php'
if (file_exists($file = app_path('src/helpers.php'))) { 
    require $file;
}

答案 1 :(得分:0)

您正在做的是最佳做法,应该可以工作。我以barryvdh / laravel-debugbar中的composer.json为例。 https://github.com/barryvdh/laravel-debugbar/blob/master/composer.json

{

    "name": "barryvdh/laravel-debugbar",
    "description": "PHP Debugbar integration for Laravel",
    "keywords": ["laravel", "debugbar", "profiler", "debug", "webprofiler"],
    "license": "MIT",
    "authors": [
        {
            "name": "Barry vd. Heuvel",
            "email": "barryvdh@gmail.com"
        }
    ],
    "require": {
        "php": ">=5.5.9",
        "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*|5.5.*",
        "symfony/finder": "~2.7|~3.0",
        "maximebf/debugbar": "~1.13.0"
    },
    "autoload": {
        "psr-4": {
            "Barryvdh\\Debugbar\\": "src/"
        },
        "files": [
            "src/helpers.php"
        ]
    }
}

我的猜测是您在主composer.json中是否不需要以正确的方式使用自己的软件包?

答案 2 :(得分:0)

只需调用您的主项目

 composer update you/your-package

Source

答案 3 :(得分:0)

最简单的方法是将其添加到包裹服务提供商中:

require_once __DIR__.'/helpers.php';

答案 4 :(得分:0)

唯一对我有用的是运行 composer remove <vendor>/<package> 并要求它再次返回。否则文件部分将被忽略。

这似乎是在本地开发包并对 composer.json 文件进行更改时发生的。