Я бы отделил ваш сеансовый класс от команды session_start
(звучит глупо, но терпеливо), чтобы избежать вероятности того, что вызовы будут запутаны и / или забыты и / или вызваны в неправильное время (после заголовков).
Если вы не используете фреймворк, который, как я могу предположить, не относится к сеансам напрямую, то я, вероятно, предпочел бы поместить вызов session_start
в пользовательский файл автозагрузчика, который вы загружаете в началекаждого запроса.
Примерно так (предполагается, что вы используете автозагрузчик композитора)
custom_autoload.php
<?php
session_start();
$loader = require __DIR__ . '/relative/path/to/vendor/autoload.php';
Таким образом, вы знаете,он вызывается перед любым выводом в браузер.Тогда ваш класс сеанса может быть ответственным за обработку содержимого $_SESSION
, которое должно быть его единственной работой.
См. этот вопрос и ответы для хорошего руководства по использованию автозагрузчика композиторов, если ваш'eне знаком с этим.