mariuslundgard / php-util
A utility library for PHP 5.3+.
v0.1.0-beta.1
2014-08-09 21:18 UTC
Requires
- php: >=5.4.13
Requires (Dev)
- apigen/apigen: ~2.8
- mayflower/php-codebrowser: ~1.1
- nette/nette: ~2.1.3
- pdepend/pdepend: ~2.0
- phploc/phploc: *
- phpmd/phpmd: dev-master
- phpunit/php-invoker: dev-master
- phpunit/phpunit: ~4.0
- satooshi/php-coveralls: dev-master
- sebastian/finder-facade: dev-master
- sebastian/phpcpd: ~1.4
- squizlabs/php_codesniffer: ~1.4
- theseer/fdomdocument: dev-master
This package is not auto-updated.
Last update: 2024-11-09 16:48:07 UTC
README
Utility functions and classes for PHP.
Examples
The Util\Dictionary class
Usage example:
<?php require 'vendor/autoload.php'; use Util\Dictionary; $dict = new Dictionary([ 'path.to.item' => 123, 'path.to.another' => 124, ]); echo json_encode($dict->get()); // -> { "path": { "to": { "item": 123, "another": "124 " }}} echo $dict['path.to.item']; // -> 123
Using a Dictionary object for filesystem representation.
use Util\Dictionary; $rootDir = dirname(__DIR__); $dir = new RecursiveDirectoryIterator($rootDir); $iter = new RecursiveIteratorIterator($dir); $regex = new RegexIterator($iter, '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH); $phpFiles = new Dictionary([], [ 'delimiter' => '/', ]); foreach ($regex as $key => $file) { $phpFiles[trim(realpath($file[0]), '/')] = 'Modified '.time_elapsed_string(filemtime($file[0])); } echo '<pre>'; echo json_encode($phpFiles[trim($rootDir, '/')], JSON_PRETTY_PRINT); echo '</pre>'; // { // "example": { // "index.php": "Modified 13 hours ago" // }, // "src": { // "array.php": "Modified 9 hours ago", // "object.php": "Modified 20 days ago", // "string.php": "Modified 2 days ago", // "time.php": "Modified 7 hours ago", // "Util": { // "Dictionary.php": "Modified 5 seconds ago" // } // }, // ...
Using a Dictionary object for application configuration.
use Util\Dictionary; class MyApplication { protected $config; public function __construct(array $config = []) { $this->config = new Dictionary($config); } public function __get($property) { switch ($property) { case 'config': return $this->config; default: throw new Exception('Unknown application property: '.$property); } } public function configure(array $config) { $this->config->merge($config); return $this; } } $app = (new App()) ->configure([ 'db.user' => 'root', 'db.pass' => 'test', ]); echo $app->config['db.user']; // root echo json_encode($app->config['db']); // { "user": "root", "pass": "test" }