NoraBear Package API Documentation

SchemeAwareSchemeCollectionProvider
in package
implements ProviderInterface

Read onlyYes
FinalYes

Scheme Aware SchemeCollection Provider

スキームごとに異なるリソース名前空間にマッピングする SchemeCollection を提供します。

SchemeMappingを使用して柔軟にスキームとリソース名前空間を設定できます:

  • api://self/users → {AppName}\Resource\Api\Users
  • page://self/users → {AppName}\Resource\Page\Users
  • app://self/users → {AppName}\Resource\App\Users
Tags
example
// Moduleでのバインディング(デフォルトマッピング)
use Ray\Di\AbstractModule;
use BEAR\Resource\SchemeCollectionInterface;

class AppModule extends AbstractModule
{
    protected function configure(): void
    {
        $this->bind(SchemeMapping::class)
            ->toInstance(SchemeMapping::createDefault());

        $this->bind(SchemeCollectionInterface::class)
            ->toProvider(SchemeAwareSchemeCollectionProvider::class);
    }
}
example
// カスタムマッピング
$mapping = new SchemeMapping([
    'api' => 'Endpoint',  // api://self/users → Resource\Endpoint\Users
    'page' => 'Page',     // page://self/users → Resource\Page\Users
]);
$this->bind(SchemeMapping::class)->toInstance($mapping);
implements

Table of Contents

Interfaces

ProviderInterface

Properties

$appName  : string
$injector  : InjectorInterface
$schemeMapping  : SchemeMapping

Methods

__construct()  : mixed
get()  : SchemeCollection
SchemeCollection インスタンスを生成

Properties

Methods

get()

SchemeCollection インスタンスを生成

public get() : SchemeCollection

SchemeMappingに登録されたスキームに対して SchemeAwareAdapter を割り当て、 スキーム名に基づいた名前空間解決を行います。

登録されていないスキームは追加されません。

Return values
SchemeCollection

スキームコレクション


        
On this page

Search results