a-blog cms PHP API Reference

LibraryProvider
in package
implements Provider

FinalYes

埋め込みライブラリ(embed/embed)で oEmbed / OGP を解決するコア既定のプロバイダー。

どの URL も対象にするため、レジストリには最後尾の優先度 (ProviderRegistry::LIBRARY_PRIORITY)で登録される。 拡張アプリが追加したプロバイダーが先に解決した場合、ここへは到達しない。

対応サービスはライブラリ同梱のアダプタと、汎用の oEmbed ディスカバリ/OGP 検出に従う。 同梱アダプタに無いサービス(地図・新しい SNS など)は、レジストリへ独自プロバイダーを 登録して対応する設計で、ここにサービス固有の分岐は足さない。

Table of Contents

Interfaces

Provider
URL から埋め込み情報を解決するプロバイダー。

Constants

OEMBED_MAX_HEIGHT  = 720
OEMBED_MAX_WIDTH  = 1280
oEmbed に要求する埋め込みの最大幅・高さ(px)

Methods

resolve()  : EmbedData|null
埋め込み情報を解決する
settings()  : array<string, mixed>
Embed ライブラリへ渡す設定。
supports()  : bool
どの URL も対象にする(コア既定のフォールバック)
createEmbed()  : Embed
SSRF ガードを挟んだ Embed インスタンスを組み立てる

Constants

OEMBED_MAX_WIDTH

oEmbed に要求する埋め込みの最大幅・高さ(px)

public mixed OEMBED_MAX_WIDTH = 1280

実際の描画幅は表示サイズ(data-width)と CSS(width:100% + aspect-ratio)が決めるため、 ここは「提供元に十分な解像度で返させるための上限値」でしかない。

Why not: maxwidth だけを渡さないのは、YouTube が maxwidth 単独指定では 356x200 までしか 上げてくれず(未指定時は 200x113)、maxheight と併せて初めて要求どおりのサイズを返すため。 16:9 の値にしておくと動画系プロバイダで素直な比率の iframe が得られる。

Methods

resolve()

埋め込み情報を解決する

public resolve(string $url) : EmbedData|null
Parameters
$url : string
Return values
EmbedData|null —

取得できなければ null

settings()

Embed ライブラリへ渡す設定。

public settings() : array<string, mixed>

Why not: サイズを指定しないと、YouTube の oEmbed は既定でサムネイル相当の 小さな iframe(200x113)を返し、表示サイズを広げても粗いまま拡大される。 oEmbed の maxwidth / maxheight は「これ以下で返す」という上限指定なので、 実際の描画幅は CSS 側(width:100% + aspect-ratio)が決める。

Return values
array<string, mixed>

supports()

どの URL も対象にする(コア既定のフォールバック)

public supports(string $url) : bool
Parameters
$url : string
Return values
bool

createEmbed()

SSRF ガードを挟んだ Embed インスタンスを組み立てる

private createEmbed() : Embed
Return values
Embed

        
On this page

Search results