essence
essence copied to clipboard
Default filter
May be there should be some default provider added, for example opengraph/twitter cards cover many cases. Don't know if default providers allowed by library conception, so wanted to ask before making a pull request. Something like these.
/**
* Configures the Default provider
*/
protected function _setupDefault()
{
$this->configure([
'DefaultMetaPattern' => '~^(og|twitter):~i',
'DefaultPresenters' => Container::unique(function($C) {
return [
$C->get('OpenGraphReindexer'),
$C->get('TwitterCardsReindexer')
];
}),
'DefaultProvider'=> function($C) {
$Default = new MetaTags($C->get('Http'), $C->get('Dom'));
$Default->setPreparators([]);
$Default->setPresenters($C->get('DefaultPresenters'));
$Default->setMetaPattern($C->get('DefaultMetaPattern'));
return $Default;
}
]);
}
There was default oEmbed and OpenGraph providers before, but I removed them. I really like the idea but it can add some heavy requests and take quite some time. But maybe there should be generic providers by default, to handle most cases, and let the user deactivate them if needed.
yes at least default opengraph provider is better that nothing. library is used to get info from url,it is possible that url couldn't be holded with provider list.
if needed anyone could disable it with
$Essence = new Essence\Essence([
'filters' => [
'_default' => false
]
]);
In that case I would add every default provider possible, probably in that order:
- OEmbed
- OpenGraph
- TwitterCards
...and give them names like GenericOEmbed or GenericOpenGraph so that it is clear what their purpose are.