/** * View project * * @param Request $request Request * @param Category $category Category * @param Project $project Project * * @return array * * @Route("/portfolio/{categorySlug}/{projectSlug}", name="portfolio_project_view") * * @Template() * * @ParamConverter("category", options={"mapping": {"categorySlug": "slug"}}) * @ParamConverter("project", options={"mapping": {"projectSlug": "slug"}}) */ public function viewAction(Request $request, Category $category, Project $project) { $categorySlug = $project->getCategories()->first()->getSlug(); $canonicalUrl = $this->generateUrl('portfolio_project_view', ['categorySlug' => $categorySlug, 'projectSlug' => $project->getSlug()], true); $seo = $this->get('sonata.seo.page'); $seo->addMeta('name', 'description', $project->getMetaDescription())->addMeta('name', 'keywords', $project->getMetaKeywords())->addMeta('property', 'og:title', $project->getName())->addMeta('property', 'og:url', $canonicalUrl)->addMeta('property', 'og:type', 'portfolio')->addMeta('property', 'og:description', $project->getMetaDescription())->setLinkCanonical($canonicalUrl); if ($project->getImage()) { $vichUploader = $this->get('vich_uploader.templating.helper.uploader_helper'); $seo->addMeta('property', 'og:image', $request->getSchemeAndHttpHost() . $vichUploader->asset($project, 'imageFile')); } return ['project' => $project, 'category' => $category]; }
public function testSetAndGetProjectMetaDescription() { $project = new Project(); $description = 'php symfony2 performance'; $project->setMetaDescription($description); $this->assertEquals($project->getMetaDescription(), $description); }