Via Composer
$ composer require arrounded/metadata
First add the module's service provider and facade to config/app.php
:
Arrounded\Metadata\ServiceProvider::class,
'Metadata' => Arrounded\Metadata\Facades\Metadata::class,
Then somewhere in your service provider, define your application's metadata. Either by passing it an array:
$this->app['arrounded.metadata']->setMetadata([
['url' => 'foo.com', 'title' => Homepage', 'description' => 'foobar'],
]);
Or by indicating it the path to a CSV file:
metadata.csv
url,title,description
foo.com,Homepage,foobar
$this->app['arrounded.metadata']->setMetadataFromFile('metadata.csv');
Then in your views call the render
method on the facade. It'll look at the current URL and find the correct metadata for the page.
You can also pass it an array of additional metadata:
{{ Metadata.render() }}
{{ Metadata.render({image: 'foo.com/logo.png'}) }}
By default all properties (except core ones such as title, description etc) are also wrapped in Twitter/Facebook graph metadata. You can disable this behavior by setting which properties should not be wrapped:
$this->app['arrounded.metadata']->setMetadataFromFile('metadata.csv');
$this->app['arrounded.metadata']->setUnwrapped(['property', 'other_property']);
$ composer test
The MIT License (MIT). Please see License File for more information.