beyerz / open-graph-protocol-bundle
Integration for OpenGraph protocol and Symfony2
Installs: 6 169
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 4
Open Issues: 5
Type:symfony-bundle
Requires
- php: >=5.5
- symfony/symfony: ~2.8|~3.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-11-18 20:35:24 UTC
README
OpenGraphProtocolBundle
Easy Integration for Symfony2 projects requiring opengraph
The OpenGraphBundle enables easy integration for Symfony2 and twig views to incorporate the Open Graph Protocols
Important Note: If you are using symfony version less than 2.8, please stay with build v1.0 as v2.0 may not work correctly due to symfony using traits for container awareness
Installation
Composer
composer require beyerz/open-graph-protocol-bundle
Application Kernel
Add OpenGraphBundle to the registerBundles()
method of your application kernel:
public function registerBundles() { return array( new Beyerz\OpenGraphProtocolBundle\OpenGraphProtocolBundle(), ); }
Config
Enable loading of the OGP service and setting default values by adding the following to
the application's config.yml
file:
A Base and facebook library are currently supported, but you can add as many libraries with as many default values that you like
#OGP Bundle open_graph_protocol: libraries: base: class: Beyerz\OpenGraphProtocolBundle\Libraries\Base default_values: site_name: {{ default value for website name }} type: {{ default value for website type }} title: {{ default value for any page title }} url: {{ default value for any canonical url (acts as a fall back for bad pages) }} image: {{ default image for your site }} description: {{ default generic page description for your site }} facebook: class: Beyerz\OpenGraphProtocolBundle\Libraries\Facebook default_values: { app_id: {{ Your apps facebook id }} }
Documentation
View
Include the OGP Metas in the head
tag of your layout.
With twig:
{% block metas %}
{{ ogp()|raw }}
{% endblock %}
Overriding Meta Values
Its common that you would want to change meta values like title, image, description etc... This is easily done from within your page page controller (or any where that has access to the service container)
From your Controller
$ogp = $this->get('beyerz.ogp.open_graph');
$base = $ogp->get('base');
$base->addMeta('title', "My dynamic title");
$base->addMeta('url', $request->getSchemeAndHttpHost().$request->getRequestUri());
$base->addMeta('description', "My dynamic description");