A set of useful PHP classes.
MD\Foundation is a set of useful PHP classes and functions that ease your development and abstract away some very common code.
It is what Lo-Dash is for JavaScript.
Visit http://www.michaldudek.pl/Foundation/ for full documentation.
You can install MD\Foundation using Composer.
$ composer require michaldudek/foundation dev-master
MD\Foundation features are grouped into PHP namespaces.
Namespace MD\Foundation\Utils contains several static classes that contain common functions that can e.g. change your array filtering code into a one-liner. Classes are split into StringUtils, ArrayUtils, ObjectUtils and FilesystemUtils.
Password hashing and cryptography is a solved problem, yet a lot of projects still reinvent the wheel with funky hashing algorithms. MD\Foundation\Crypto namespaces provides a standard and best-practice methods to deal with basic cryptography, especially if you are not running PHP 5.5 yet.
Inside the MD\Foundation\Debug namespace you will find few classes that help debug and profile your code, especially fit for runtime. The Debugger can be especially useful for analyzing variables at runtime and the Timer will help you find bottlenecks in your code.
We all love to throw exceptions and while PHP provides a lot of exceptions to throw, MD\Foundation\Exceptions adds a few more (like NotImplementedException with automatic method name resolution) or extends existing ones for easier use (InvalidArgumentException).
There is also a couple of uncategorized classes which occassionally might be of use and which range from creating MagicObjects with automatic magic getters and setters (e.g. for very quick data storage) to ease working with other vendors like very common Psr\Log.
Issues and pull requests are very welcome! When creating a pull request please include full test coverage to your changes.

