Касаемо моего App, это оболочка, внутри доступен объект БД. он доступен всему приложению, аналогично глобальной переменной.
<?php
class App{
protected static $_instance;
private function __construct(){
return new PDO('mysql:host=localhost;dbname=dbname','user','pass');
}
# Singlton methods
public static function getInstance()
{
self::$_instance = self::$_instance ?? new self;
return self::$_instance;
}
public static function useDB()
{
// Чего-то делаем с созданным экземпляром PDO, обращаясь к нему, как к self
}
private function __clone() {}
private function __wakeup() {}
}
# Init
App::getInstance();
# Из любого файла вызываем метод обёртки на манер:
App::useDB();
?>
Считываем файл в массив, выводим первый элемент массива, через некоторое время этот элемент мы удаляем из файла, сохраняем и все по новой.
В нём содержится вся иерархия структуры html страницы, это если очень кратко.
Но не советую лезть в дебри с самого начала. Все рекомендации я уже дал выше.
PS. Про SPA - согласен с Александр полностью, в т.ч., и в том, что можно делать запросы статическим файлам - без серверной обработки. Но это уже более сложная технология. Хотя на том же jQuery реализуется на раз.