$limit(количество новостей на страницу), соответственно получаем кол-во страниц $page_count, вместе с запросом передаем параметр, допустим &page=3, соответственно делаем запрос БД с учетом нашего limit и с offset, который будет равен $offset = $limit * $_GET('page').SELECT * FROM news LIMIT $limit OFFSET $offset;for($i=1;$i<=$page_count;$i++). Обычный список, который содержит ссылки у который href будет содержать итератор $i. Ну и соответственно имея $_GET('page') и $i вы модете вычислять активный пункт и т.д. Выводить не все, а только следующие 5 и предыдущие 5. Тут уже как говорят "по вкусу"
php bin/console security:check, которая проверяет на известные уязвимости в зависимостях.
switch с переменной $hms, допустим в переменной значение "hms" и сработало первое условие. оно выполнилось, НО тут засада, нет break;, поэтому выполнение кода продолжается дальше. и выполняется дальнейшая проверка условий, но так как их нет, срабатывает default.break;