Marcel Grünauer > PerlIO-via-ToFirePHP > PerlIO::via::ToFirePHP

Download:
PerlIO-via-ToFirePHP-1.100860.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 1.100860   Source  

NAME ^

PerlIO::via::ToFirePHP - log to FirePHP via an PerlIO layer

VERSION ^

version 1.100860

SYNOPSIS ^

    use PerlIO::via::ToFirePHP;
    my $fire_php = FirePHP::Dispatcher->new(HTTP::Headers->new);
    open my $fh, '>:via(ToFirePHP)', $fire_php;
    # Everything you print on the filehandle will be sent to FirePHP

DESCRIPTION ^

This PerlIO layer sends everything it receives to FirePHP. When constructing a filehandle using this layer using open(), you need to pass an object of type FirePHP::Dispatcher that has been initialized with a HTTP::Headers object.

A typical use of this PerlIO layer is to send DBI trace output to FirePHP:

    use PerlIO::via::ToFirePHP;

    my $dbh = DBI->connect(...);

    open my $fh, '>:via(ToFirePHP)',
        FirePHP::Dispatcher->new($http_headers_object);
    $dbh->trace(2, $fh);

Now the trace output of all calls to that database handle will be sent to FirePHP.

The PerlIO layer is implemented in PerlIO::via::ToFirePHP instead of just PerlIO::via::FirePHP because of a bug in PerlIO::via in perl 5.10.0 and earlier versions. If we used just PerlIO::via::FirePHP, we would not be able to use the shorthand layer notation of open my $fh, ':via(FirePHP), $fire_php>. PerlIO::via would look for a PUSHED method in package FirePHP. There is no such method, but because FirePHP::Dispatcher has been loaded, the namespace FirePHP has been autovivified. So PerlIO::via would stop looking. This bug seems to be fixed in perl 5.10.1.

METHODS ^

PUSHED

Called by PerlIO::via - read its documentation for details.

OPEN

Called by PerlIO::via - read its documentation for details.

WRITE

Called by PerlIO::via - read its documentation for details.

WRITE() accumulates input until a newline is seen, only then will it remove the newline and send the accumulated input to the FirePHP::Dispatcher object. The motivation for this was that DBI's trace() method reports trace output in chunks, not necessarily whole lines.

CLOSED

Called by PerlIO::via - read its documentation for details.

SEE ALSO ^

HTTP::Engine::FirePHP

The get_fire_php_fh() method it places in HTTP::Engine::Response returns a filehandle constructed with PerlIO::via::ToFirePHP.

PerlIO::via

See this module for how to implement PerlIO layers in Perl.

INSTALLATION ^

See perlmodinstall for information and options on installing Perl modules.

BUGS AND LIMITATIONS ^

No bugs have been reported.

Please report any bugs or feature requests through the web interface at http://rt.cpan.org/Public/Dist/Display.html?Name=PerlIO-via-ToFirePHP.

AVAILABILITY ^

The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit http://www.perl.com/CPAN/ to find a CPAN site near you, or see http://search.cpan.org/dist/PerlIO-via-ToFirePHP/.

The development version lives at http://github.com/hanekomu/PerlIO-via-ToFirePHP/. Instead of sending patches, please fork this project using the standard git and github infrastructure.

AUTHOR ^

  Marcel Gruenauer <marcel@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2009 by Marcel Gruenauer.

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

syntax highlighting: