Истинная система шаблонов нужна в ситуациях, при которых возникает реальная необходимость разделения логики представления и логики приложения. Хотя далее в настоящей главе еще будет говориться о профессиональной системе шаблонов Smarty, написанной на РНР, это мало поможет вам, если вы еще не знакомы с идеей, которая лежит в основе.
По мере роста популярности РНР был быстро адаптирован разработчиками Web-приложений по всему миру, и одна из причин этого была связана с исключительной простотой его изучения. Легкость разработки сделала РНР одним из лучших языков быстрой разработки и прототипирования приложений.
Несмотря на то что сеансы в РНР — очень простое в использовании средство, существует много тонкостей и настроек, предназначенных для получения максимальной гибкости этого механизма. В этом разделе рассматриваются конфигурационные директивы и связанные с сеансами функции, не рассмотренные ранее, и разъясняется их использование в реальных PHP-сценариях.
Разобравшись с основами использования сеансов, давайте внимательно изучим их внутреннее устройство. По умолчанию РНР предлагает три внутренних метода хранения данных сеанса, указываемые в session.save_handler: внутренний формат файла PHP-сеанса (определенный php), внутри базы данных SQLite (определенный sqlite) и формат пакета WDDX (определенный wddx).
Создание контента – один из главных этапов в создании сайтов. Однако многие разработчики отодвигают его на второй план, и в результате заказчик получает готовый, но пустой сайт. То есть ресурс вполне может начать работу, только без контента от него не будет абсолютно никакого толка. Кроме того, такой сайт практически невозможно продвинуть в поисковых системах.
Теперь, когда вы представляете, как работают сеансы, давайте разберемся, что же практически нужно для корректной работы с сеансами. Как известно, каждый сеанс идентифицируется в РНР через идентификатор сеанса, который обычно сохраняется на клиентской машине в виде HTTP cookie-набора. Если поддержка cookie-наборов отсутствует, идентификатор сеанса должен передаваться через URL.