在我的composer.json文件中,我写了:
| Select Name
但是无论如何,即使在作曲家转储-自动加载之后,功能也不会加载。我得到“调用未定义函数”。为了创建包,我使用了package generator。也许它可以在供应商文件夹中创建符号链接?
我写的内部帮手
"autoload": {
"psr-4": {
"Pmochine\\MyOwnPackage\\": "src/"
},
"files": [
"src/helpers.php"
]
},
答案 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)
答案 3 :(得分:0)
最简单的方法是将其添加到包裹服务提供商中:
require_once __DIR__.'/helpers.php';
答案 4 :(得分:0)
唯一对我有用的是运行 composer remove <vendor>/<package>
并要求它再次返回。否则文件部分将被忽略。
这似乎是在本地开发包并对 composer.json 文件进行更改时发生的。