php-extended/php-tail

A smart way to tail files depending of the environment

4.0.1 2022-06-01 21:04 UTC

README

A smart way to tail files depending of the environment

coverage build status

Installation

The installation of this library is made via composer. Download composer.phar from their website. Then add to your composer.json :

	"require": {
		...
		"php-extended/php-tail": "^3",
		...
	}

Then run php composer.phar update to install this library. The autoloading of all classes of this library is made through composer's autoloader.

Usage

The basic usage of this library is as follows :

use PhpExtended\Tail\Tail;
use PhpExtended\Tail\TailException;

$filename = "/../path/to/my/file.ext";
$tail = new Tail($filename);

try
{
	// 10 is the number of lines you want
	// 200 is the average number of chars on each line (optional)
	// false is to force throwing exceptions (optional, use true if you want silent mode)
	$lines = $tail->smart(10, 200, false);
}
catch(TailException $e)
{
	// do something is case it fails
}

This library proposes 6 methods to tail a file, which can be more or less performant depending on the context. They each follow the same signature (see sample code above).

Those methods are :

  • naive : Loads the whole file into php, then retains only the last lines
  • cheat : Uses underlying unix tail -n function
  • single : Uses a signle byte buffer to read backwards the file
  • simple : Uses a fixed size buffer to read backwards the file
  • dynamic : Uses a dynamically sized buffer to read backwards the file
  • smart : Tries to choose the best among those five to be the fastest (recommanded)

This library is inspired from this specific stackoverflow topic.

License

MIT (See license file).