3.4/develop

Fully embraced the composer way of doing things, added requirement of PHP 5.4+, and added some fancy new 5.4 stuff.
@enov  I am agree with you, I this 'Factory' is more readable than use 'new', It is better to use factory pattern