Metadata Management

This document guides you through updating metadata for your PHP application using the MainLayout class. This ensures that each page has appropriate and specific metadata for SEO and user navigation purposes.

Adding Metadata with MainLayout Class

To add or update metadata, use the methods provided in the MainLayout class. This allows you to manage head scripts, footer scripts, and custom metadata dynamically for each page.

Example: Setting Metadata for a Page

<?php

  use Lib\MainLayout;
  
  MainLayout::$title = 'My Awesome Page';
  MainLayout::$description = 'This is a description of my awesome page';
  MainLayout::addCustomMetadata('author', 'John Doe');
  
  ?>

In this example, the page's title and description are dynamically set using the MainLayout class properties. The addCustomMetadata method is used to add additional metadata, such as the author of the page.

Adding Scripts to the Head and Footer

<?php
            
  use Lib\MainLayout;

  MainLayout::addHeadScript('<script src="head-script.js"></script>');
  MainLayout::addFooterScript('<script src="footer-script.js"></script>');

  ?>

This example demonstrates how to add and output scripts for both the head and footer sections using the MainLayout class. The addHeadScript and addFooterScript methods ensure that scripts are included in the correct sections of your layout.

Dynamic Metadata for Specific Pages

The MainLayout class also supports setting dynamic metadata for specific pages based on conditions or query parameters.

<?php

  use Lib\MainLayout;
  use Lib\Request;

  $productName = Request::$params->productName ?? '';
  $productDescription = Request::$params->productDescription ?? '';

  MainLayout::$title = 'Product: ' . $productName;
  MainLayout::$description = $productDescription;

  ?>

Here, the metadata for a product page is dynamically set using the product name and description passed as query parameters. This ensures that the page metadata accurately reflects the product being viewed.

Important Note

By following this approach, you ensure your metadata is contextually accurate, enhancing both SEO and user experience.