Directory Lister is a PHP application that exposes the contents of your web-accessible folders for browsing and sharing. Featuring a zero configuration, drag-and-drop installation for quick and easy setup.

Directory Lister is a PHP application that exposes the contents of your web-accessible folders for browsing and sharing. Featuring a zero configuration, drag-and-drop installation for quick and easy setup.

Twine is a simple string manipulation library with an expressive, fluent syntax.
Twine takes an object-oriented approach to making string manipulation and comparisons easy and readable. With Twine every string is an object. This gives you power and flexibility that native strings do not have in PHP.
Check out the slides from my azPHP presentation or the article on Laravel News.
Example:
use PHLAK\Twine;
$string = new Twine\Str('john pinkerton');
$string->uppercase(Twine\Config::WORDS); // 'John Pinkerton'
$string->substring(5, 4)->equals('pink'); // true
$string->words(); // ['john', 'pinkerton']Glob-like file and pattern matching utility.
Example:
use PHLAK\Splat\Pattern;
use PHLAK\Splat\Glob;
Pattern::make('foo/bar.txt')->toRegex(); // '#^foo/bar\.txt$#'
Pattern::make('file.{yml,yaml}')->toRegex(); // '#^file\.(yml|yaml)$#'
Glob::match('*.txt', 'foo.txt'); // true
Glob::match('*.txt', 'foo.log'); // falseA color changing clock, the background color changes with every hour, minute and second.

A semantic versioning helper library for PHP.
Example:
use PHLAK\SemVer;
$version = new SemVer\Version('v1.2.3');
$version->incrementMinor(); // v1.2.3 -> v1.3.0
$version->incrementPatch(); // v1.3.0 -> v1.3.1Simple, fluent PHP caching library.
Example:
use PHLAK\Stash;
$stash = new Stash::memcached(function ($memcached) {
$memcached->addServer('localhost', 11211);
});
$stash->put('foo', $data, 5); // Cache $data for 5 minutes
$stash->has('foo'); // True if 'foo' is in the cahce
$stash->get('foo'); // Retrievs the 'foo' from the cacheHomepage for the PHX2600, the Phoenix, Arizona Network of Hackers.

PHP library for easy configuration management.
Example:
use PHLAK\Config\Config;
$config = new Config('path/to/config/databse.yaml');
$config->set('port', 3307); // Sets 'port' config item
$config->get('hostname'); // Returns 'localhost'Measure the passing of time.
Example:
use PHLAK\Chronometer\Timer;
Timer::start(); // 1562650807.427
Timer::addLap();
Timer::lastLap()->duration(); // 5.8519079685211
Timer::stop(); // 1562650817.0831
Timer::elapsed(); // 9.6561479568481