<commit_before>.. image:: https://travis-ci.org/mrclay/UserlandSession.png?branch=master   :target: https://travis-ci.org/mrclay/UserlandSession

UserlandSession
===============

UserlandSession is an HTTP cookie-based session implemented in plain PHP, allowing it to be used concurrently with--and
completely independent of--existing native sessions. This makes it handy for bridging session state across
multiple PHP apps with incompatible sessions.

The components are loosely-coupled and introduce no global state (except headers), and the API is similar to
native sessions except access to the session data is only via the single object instead of a superglobal.

.. code-block:: php

    // create a files-based session, directory sniffed from session.save_path
    $session = \UserlandSession\Session::factory();
    $session->start();

    // write data ($session->data is a plain old array property)
    $session->data['foo'] = 'bar';

    $session->writeClose(); // or let destructor do this

Storage
-------
<commit_msg>Fix & move status image<commit_after>UserlandSession
===============

.. image:: https://travis-ci.org/mrclay/UserlandSession.png?branch=master
  :target: https://travis-ci.org/mrclay/UserlandSession

UserlandSession is an HTTP cookie-based session implemented in plain PHP, allowing it to be used concurrently with--and
completely independent of--existing native sessions. This makes it handy for bridging session state across
multiple PHP apps with incompatible sessions.

The components are loosely-coupled and introduce no global state (except headers), and the API is similar to
native sessions except access to the session data is only via the single object instead of a superglobal.

.. code-block:: php

    // create a files-based session, directory sniffed from session.save_path
    $session = \UserlandSession\Session::factory();
    $session->start();

    // write data ($session->data is a plain old array property)
    $session->data['foo'] = 'bar';

    $session->writeClose(); // or let destructor do this

Storage
-------

{'fraction_non_alphanumeric': 0.1085907335907336, 'fraction_numerical': 0.0, 'mean_word_length': 4.143920595533499, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 11, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7072395', 'n_tokens_mistral': 544, 'n_tokens_neox': 517, 'n_words': 220}