PHP Class Phergie_Plugin_Logging, phergie

CONFIGURATION: The following configuration items are required, only 'retry' is optional: 'logging.dsn' = A PDO DSN string to connect to your database 'logging.user' = Username for your database access 'logging.pass' = Password for the same: 'logging.table' = Table name to store data in 'logging.dsn' => 'mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8', 'logging.user' => 'MyUser', 'logging.pass' => 'UserPassword', 'logging.table' => 'phergie', DATA SCHEMA: You will need to have created an appropriate database table to store these log entries. At a minimum it needs to include host, channel, type, nick, and message fields. Beyond that you can get creative. The following is an example table structure you might use: CREATE TABLE phergie_log ( id int(11) unsigned NOT NULL AUTO_INCREMENT, host varchar(265) NOT NULL, channel varchar(50) NOT NULL, type varchar(10) NOT NULL, nick varchar(50) NOT NULL, message varchar(1024) NULL, created_on timestamp DEFAULT current_timestamp NOT NULL, PRIMARY KEY (id), INDEX idx_phergie_chan (channel) ) ENGINE = innodb DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Author: Eli White ([email protected])
Inheritance: extends Phergie_Plugin_Abstract
Show file Open project: phergie/phergie

Protected Properties

Property Type Description
$db PDO Database connection
$failed Remembers if we've failed our database connection and given up.

Public Methods

Method Description
onAction ( ) : void onAction
onJoin ( ) : void onJoin
onLoad ( ) : void onLoad
onPart ( ) : void onPart
onPrivmsg ( ) : void onPrivmsg
preDispatch ( ) : void preDispatch

Protected Methods

Method Description
log ( Phergie_Event_Request $event, string $nick, string $message = NULL ) : void log

Private Methods

Method Description
_connectDB ( ) : boolean _connectDB
_log ( Phergie_Event_Request $event, string $nick, string $message = NULL ) : boolean _log

Method Details

log() protected method

Wrapper method on the logging that adds in additional features, such as error handling and retrying the long living database connection in case it dropped.
Author: Eli White ([email protected])
protected log ( Phergie_Event_Request $event, string $nick, string $message = NULL ) : void
$event Phergie_Event_Request The event we are operating on
$nick string Who did this?
$message string What was said?
return void

onAction() public method

Handler for when the bot receives a CTCP ACTION request.
Author: Eli White ([email protected])
public onAction ( ) : void
return void

onJoin() public method

Handler for when a user joins a channel.
Author: Eli White ([email protected])
public onJoin ( ) : void
return void

onLoad() public method

Prepare for logging
Author: Eli White ([email protected])
public onLoad ( ) : void
return void

onPart() public method

Handler for when a user leaves a channel.
Author: Eli White ([email protected])
public onPart ( ) : void
return void

onPrivmsg() public method

Watches for & logs any incoming messages from the channel
Author: Eli White ([email protected])
public onPrivmsg ( ) : void
return void

preDispatch() public method

Processes events before they are dispatched and logs appropriate ones.
Author: Eli White ([email protected])
public preDispatch ( ) : void
return void

Property Details

$db protected property

Database connection
protected PDO $db
return PDO

$failed protected property

Remembers if we've failed our database connection and given up.
protected $failed