What are the advantages of storing navigation structure in a database table or JSON/XML file instead of hardcoding it in PHP?

Storing the navigation structure in a database table or JSON/XML file allows for easier maintenance and updates without the need to modify the PHP code. It also provides flexibility in dynamically generating the navigation based on user roles or permissions. Additionally, it separates the content from the presentation logic, making the code more organized and easier to manage.

// Example of storing navigation structure in a JSON file

// navigation.json
{
  "menu": [
    {
      "title": "Home",
      "url": "index.php"
    },
    {
      "title": "About",
      "url": "about.php"
    },
    {
      "title": "Contact",
      "url": "contact.php"
    }
  ]
}

// PHP code to read and display navigation from JSON file
$navigation = json_decode(file_get_contents('navigation.json'), true);

echo '<ul>';
foreach ($navigation['menu'] as $item) {
    echo '<li><a href="' . $item['url'] . '">' . $item['title'] . '</a></li>';
}
echo '</ul>';