【发布时间】:2018-09-15 09:07:10
【问题描述】:
我创建了一个 Laravel 包,将它上传到了 packagegist 并设法使用 composer require 安装了它。
我现在遇到了一个问题,我不知道如何解决它,搜索也没有帮助。
我有一个配置文件,它将默认配置文件发布到配置目录。我已经对发布的文件进行了更改,现在我希望我的包使用这个配置文件,但它使用的是包中的配置文件,而不是新更新的发布文件。 这是我在 vendor src 文件夹中的服务提供商
namespace Clystnet\Vtiger;
use Illuminate\Support\ServiceProvider;
class VtigerServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
$this->publishes([
__DIR__ . '/Config/config.php' => config_path('vtiger.php'),
], 'vtiger');
// use the vendor configuration file as fallback
$this->mergeConfigFrom(
__DIR__ . '/Config/config.php', 'vtiger'
);
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
$this->app->bind('clystnet-vtiger', function () {
return new Vtiger();
});
config([
'config/vtiger.php',
]);
}
}
这是我的主要包类
<?php
namespace Clystnet\Vtiger;
use Storage;
use Illuminate\Support\Facades\Config;
class Vtiger
{
protected $url;
protected $username;
protected $accesskey;
public function __construct() {
// set the API url and username
$this->url = Config::get('vtiger.url');
$this->username = Config::get('vtiger.username');
$this->accesskey = Config::get('vtiger.accesskey');
}
...
在我的课堂上,我正在做一个var_dump($this->url),但它没有读取正确的配置文件。
如何设置它以使用正确的?
更新
这是我的自定义配置文件,也是软件包正在读取的配置文件
return [
'url' => 'path/to/vtiger/webservice',
'username' => '',
'accesskey' => '',
];
【问题讨论】:
-
您的自定义配置有多维数组?
-
@Troyer 我刚刚为我的配置文件添加了代码
-
记住您需要运行
vendor:publish来发布自定义配置文件。
标签: php laravel config packages