From c72efa0d3f8544e2c2da1bd83aba2671936eb5ce Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Wed, 11 May 2022 16:37:59 +1200 Subject: [PATCH] ENH Use guzzle for oembed --- _config/oembed.yml | 5 +++++ composer.json | 3 ++- .../03_Forms/Field_types/03_HTMLEditorField.md | 13 +++++++++++++ docs/en/04_Changelogs/4.11.0.md | 1 + 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/_config/oembed.yml b/_config/oembed.yml index 31a1b742b..091babc55 100644 --- a/_config/oembed.yml +++ b/_config/oembed.yml @@ -4,6 +4,11 @@ Name: coreoembed SilverStripe\Core\Injector\Injector: SilverStripe\View\Embed\Embeddable: class: SilverStripe\View\Embed\EmbedContainer + Psr\Http\Client\ClientInterface.oembed: + class: GuzzleHttp\Client + Embed\Http\Crawler: + constructor: + - '%$Psr\Http\Client\ClientInterface.oembed' Embed\Embed: constructor: - '%$Embed\Http\Crawler' diff --git a/composer.json b/composer.json index 08806cc7a..0bb28858c 100644 --- a/composer.json +++ b/composer.json @@ -60,7 +60,8 @@ }, "conflict": { "egulias/email-validator": "^2", - "phpunit/phpunit": "^6 || ^7 || ^8" + "phpunit/phpunit": "^6 || ^7 || ^8", + "cwp/cwp-core": "<2.11.0" }, "provide": { "psr/container-implementation": "1.0.0" diff --git a/docs/en/02_Developer_Guides/03_Forms/Field_types/03_HTMLEditorField.md b/docs/en/02_Developer_Guides/03_Forms/Field_types/03_HTMLEditorField.md index afae5c3e6..373da7403 100644 --- a/docs/en/02_Developer_Guides/03_Forms/Field_types/03_HTMLEditorField.md +++ b/docs/en/02_Developer_Guides/03_Forms/Field_types/03_HTMLEditorField.md @@ -265,6 +265,19 @@ SilverStripe\AssetAdmin\Forms\RemoteFileFormFactory: HtmlEditorConfig::get('cms')->disablePlugins('ssembed'); ``` +Use the following config if you need to send outbound requests through a proxy: + +```yaml +--- +Name: myembed +After: coreoembed +--- +SilverStripe\Core\Injector\Injector: + Psr\Http\Client\ClientInterface.oembed: + constructor: + - proxy: '111.222.333.444:55' +``` + ## Limiting oembed URLs HtmlEditorField can have whitelists set on both the scheme (default http & https) and domains allowed when diff --git a/docs/en/04_Changelogs/4.11.0.md b/docs/en/04_Changelogs/4.11.0.md index 68e01c834..411fbb7f9 100644 --- a/docs/en/04_Changelogs/4.11.0.md +++ b/docs/en/04_Changelogs/4.11.0.md @@ -102,6 +102,7 @@ This release includes a number of bug fixes to improve a broad range of areas. C - If `guzzlehttp/guzzle` is required, it must now be at least `7.3.0`. This was done to ensure that v2 of `guzzlehttp/psr7` is installed, which is used by `embed/embed` v4 - `embed/embed` has been upgraded from v3 to v4. The internal implementation of the internal `Embeddable` interface has been changed from `EmbedResource` to `EmbedContainer` +- `embed/embed` has been configured to use a guzzle client instead of the default curl client so that a proxy configuration value can be set if required