3

register()Laravel パッケージを開発していますが、サービス プロバイダーのメソッドから構成ファイルを読み取ることができません。

試し\Config::get("package::file.option")てみるとnullになり、
試してみる\Config::get("package::file")と空の配列が得られます。

それにもかかわらず、メソッドからそれらを読み取ることができますboot()!

以下は、メソッドpackage()内の呼び出しboot()とフォルダー構造です。

// package() call:
$this->package('cerbero/login');

// package directory structure:
/workbench
    /cerbero
        /login
            /src
                /Cerbero
                    /Login
                        LoginServiceProvider.php
                        ...
                /config
                    main.php
                    oauth.php
                    redis.php
4

1 に答える 1

5

は別のサービス プロバイダーから提供されてregister()いるため、構成ファイルを直接読み取ることはできません。 むしろ、バインディング メソッドを呼び出すときにインスタンスを渡す必要があります。$this->app['config']
$app

たとえば、これは機能します:

$this->app->bind('Something', function($app) {
    $config = $app['config']->get('package::file.option');
    return new Something($config);
});
于 2013-09-30T19:06:11.153 に答える