Manage your meta tags easily
composer require rudak/seo_bundle
#AppKernel.php
$bundles = [
//...
new Rudak\SeoBundle\RudakSeoBundle(),
];
Some parameters are required and some optional
#config.yml
rudak_seo:
title: title you want
description: Description you want
author: RudaK
og_title: My Website - Blog #optional
og_description: My website is blue #optional
og_image: relative/path/article.jpg #optional
og_type: article #optional
og_locale: fr_FR #optional
fb_app_id: abcdefghijklmnopqrstuvwxyz0123456789 #optional
The Meta Object is auto configured with de default values from config.yml. You just have to call twig functions in your view for print the hydrated meta tag.
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{ seo_title() }}
{{ seo_description() }}
{{ seo_author() }}
</head>
Will become
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>your default title</title>
<meta name="description" content="your default description">
<meta name="author" content="your default author">
</head>
public function blogAction($id)
{
$em = $this->getDoctrine()->getManager();
$article = $em->getRepository('AppBundle:Blog')->find($id);
$metaValues = [
'title' => $article->getName(),
'description' => 'what an article ! it\'s so good',
'author' => $article->getAuthor(),
'og_type' => 'article',
];
$metaBuilder = $this->get('rudak_seo.builder');
$metaBuilder->updateMetaObject($metaValues);
return $this->render('default/article.html.twig', [
'article' => $article,
]);
}
The values will be updated in your template. That's all ;)