Сессии PHP против сессий БД - PullRequest
1 голос
/ 21 августа 2011

Я балуюсь PHP.В проектах, которые я делал, я всегда использую базу данных и куки для обработки сессий.Я видел "функции сеанса", такие как session_start (), используемые также в других источниках.Мне просто любопытно, что лучше?Должен ли я использовать один или другой?

Ответы [ 3 ]

1 голос
/ 21 августа 2011

Ну, есть три способа, которыми я использовал время ожидания:

  1. Традиционный $_COOKIE путь, означающий, что вы фактически используете куки для хранения значений
  2. «новый» $_SESSION путь, где вы используете ассоциативный массив, который, вероятно, опирается на cookie
  3. Использование $_SESSION в сочетании с БД, что делает сеансы управляемыми на основе пользователя.

Я предпочитаю использовать вариант № 3, так как он позволяет мне изменять сеансы «на лету», а также легче отслеживать зарегистрированных пользователей.

Параметры # 3 будут воспроизводиться следующим образом (полупсевдо):

<?php
    //Start the session
    session_start();

    //Get the session data
    $_SESSION['user'] = retrieveSessionDataFromDB($_SESSION['user']['unique_id']);

    //Profit
?>
1 голос
/ 21 августа 2011

Я бы порекомендовал использовать встроенные функции сеанса, поскольку вам не нужно кодировать всю обработку сеанса вручную. По умолчанию состояние сеанса сохраняется в файле, но вы также можете изменить его, например, в базу данных, используя session_set_save_handler .

0 голосов
/ 22 августа 2011

Я бы обязательно использовал PHP-сеансы по нескольким причинам

  1. Первая причина заключается в том, что PHP-сеансами легко управлять с помощью собственных методов.Существует также множество библиотек, которые обеспечивают очень надежное управление сессиями, например, Zend_Session

  2. Сеансы PHP более масштабируемы.Использование MySQL в качестве хранилища данных, вероятно, станет самым большим узким местом, когда ваше приложение начнет расти.Хранение сессий в памяти позволит вам масштабировать горизонтально, чтобы компенсировать.Хранение в базе данных может создать большую нагрузку на вашу базу данных, чем необходимо.

Как правило, это не имеет большого значения для небольших приложений, но если вы планируете расти, я бы определенноиспользовать сеансы PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...