Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH Use guzzle for oembed #10311

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions _config/oembed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a good idea using Guzzle all the time.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking maybe in some later PR we'll want to define a global HTTP client that people can use for every request. But that's another PR for another day.

Embed\Embed:
constructor:
- '%$Embed\Http\Crawler'
3 changes: 2 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions docs/en/04_Changelogs/4.11.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

<!--- Changes below this line will be automatically regenerated -->

Expand Down