Apache::Session::PHP - glues Apache::Session with PHP::Session


Apache-Session-PHP documentation Contained in the Apache-Session-PHP distribution.

Index


Code Index:

NAME

Top

Apache::Session::PHP - glues Apache::Session with PHP::Session

SYNOPSIS

Top

  use Apache::Session::PHP;

  tie %session, 'Apache::Session::PHP', $sid, {
      SavePath => '/var/sessions',
  };

DESCRIPTION

Top

Apache::Session::PHP is an adapter of Apache::Session for PHP::Session. It uses following combination of strategies:

Generate: MD5

PHP4 session also uses 32bit session-id, generated by MD5 of random string. So MD5 (default) generation would fit.

Serialize: PHP

uses PHP::Session::Serializer::PHP.

Lock: Null

PHP4 uses exclusive flock for session locking. In Apache::Session, we use Null for locking and Store module executes flock on opening the session file.

Store: PHP

similarto File store, but file naming scheme is slightly different.

NOTE

Top

PHP does NOT have distinction between hash and array. Thus PHP::Session restores PHP array as Perl hash.

  Perl  =>  PHP  => Perl
  array    array    hash

Thus if you store array in sessions, what'll come back is hash.

AUTHOR

Top

Tatsuhiko Miyagawa <miyagawa@bulknews.net>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

Top

Apache::Session, PHP::Session


Apache-Session-PHP documentation Contained in the Apache-Session-PHP distribution.

package Apache::Session::PHP;

use strict;
use vars qw($VERSION);
$VERSION = 0.05;

use Apache::Session;
use base qw(Apache::Session);

use Apache::Session::Generate::MD5;
use Apache::Session::Serialize::PHP;
use Apache::Session::Lock::Null;
use Apache::Session::Store::PHP;

sub populate {
    my $self = shift;

    $self->{object_store} = Apache::Session::Store::PHP->new($self);
    $self->{lock_manager} = Apache::Session::Lock::Null->new($self);
    $self->{generate}     = \&Apache::Session::Generate::MD5::generate;
    $self->{validate}     = \&Apache::Session::Generate::MD5::validate;
    $self->{serialize}    = \&Apache::Session::Serialize::PHP::serialize;
    $self->{unserialize}  = \&Apache::Session::Serialize::PHP::unserialize;
    return $self;
}

1;
__END__