【发布时间】:2017-11-09 18:58:14
【问题描述】:
我正在为我的需要开发一个自定义 laravel 包,但发现了一个奇怪的问题。我的包应该使用名为 t() 的自定义辅助函数。
function t($string, array $options = [])
{
// Function code goes here
}
它位于我的包文件夹中,就在包服务提供商附近。 服务提供者本身加载成功,但帮助文件加载不成功。我在包的 composer.json 中添加了以下行“自动加载”部分,就像我在其他包中看到的那样:
"files": [
"src/helpers.php"
]
然后我放弃了自动加载。一切正常,但这个 t() 函数。没有找到。我做错了什么?
P.S.:当然,我可以使用 require_once 将它包含在包服务提供者中,但是无论哪种方式,composer 是什么?)
更新 包composer.json:
{
"name": "astatroth/laravel-i18n",
"require": {
"astatroth/laravel-config": "^1.0"
},
"license": "MIT",
"authors": [
{
"name": ".......",
"email": "........"
},
{
"name": ".......",
"email": "........"
}
],
"autoload": {
"psr-4": {
"Astatroth\\LaravelI18n\\": "src/"
},
"files": [
"src/helpers.php"
]
},
"minimum-stability": "dev"
}
包文件结构:
laravel-i18n
config
src
I18nServiceProvider.php
helpers.php
composer.json
【问题讨论】:
-
确保你的路径是正确的。
-
正确。因为它在 laravelcollective/html 包中:` "autoload": { "psr-4": { "Collective\\Html\\": "src/" }, "files": [ "src/helpers.php" ] }`
-
您能否发布完整的
composer.json文件和文件结构?