dev-master
9999999-dev http://github.com/c9s/universalUniversal library for PHP
MIT
The Requires
- php >=5.3.0
by Yo-An Lin
Universal library for PHP
Universal is a general proprose PHP library., (*1)
composer require universal/universal 2.0.x-dev
$loader = new BasePathClassLoader( array( 'vendor/pear', 'external_vendor/src' ) ); $loader->useEnvPhpLib(); $loader->register();
Include Path manipulator, (*3)
```php $includer = new PathIncluder(array( 'to/path', ... )); $includer->add( 'path/to/lib' ); $includer->setup(); // write set_include_path, (*4)
## Http ### StreamResponse MXHR support ```php $response = new Universal\Http\StreamResponse; for( $i = 0 ; $i < 30000 ; $i++ ) { $response->write(json_encode(array('i' => $i)), array( 'Content-Type' => 'application/json', )); usleep(200000); } $response->finish();
For multiple files:, (*5)
<?php $req = new HttpRequest; foreach( $req->files as $f ) { $extname = $f->getExtension(); $filename = $f->getPathname(); } $req->param( 'username' ); // get $_REQUEST['username']; $req->get->username; // get $_GET['username']; $req->post->username; // get $_POST['username']; $req->server->path_info; // get $_SERVER['path_info'];
To get FILE:, (*6)
$req = new HttpRequest;
Get $_FILES['uploaded'] hash:, (*7)
$req->files->uploaded;
Get file size:, (*8)
$req->files->uploaded->size;
Get file mime type:, (*9)
$req->files->uploaded->type; // plain/text
Get upload error:, (*10)
$req->files->uploaded->error;
Foreach file:, (*11)
foreach( $req->files->uploaded as $f ) { $f->size; }
Construct a $container object or inherit from it:, (*12)
$container = new Universal\Container\ObjectContainer;
Register a object builder for lazy building., (*13)
$container->mailer = function() { return new YourMailer; };
To get singleton object via __get
magic method:, (*14)
$mailer = $container->mailer;
Or get singleton object from instance
method:, (*15)
$mailer = $container->instance('mailer');
To build a new object:, (*16)
$mailer = $container->build('mailer');
To build a new object with arguments:, (*17)
$mailer = $container->build('mailer', array( ... ));
Supported Session Storage backend:, (*18)
use ObjectContainer to pass options:, (*19)
$container = new Universal\Container\ObjectContainer; $container->state = function() { return new Universal\Session\State\NativeState; }; $container->storage = function() { return new Universal\Session\Storage\NativeStorage; };
Native Session:, (*20)
$session = new Universal\Session\Session(array( 'state' => new Universal\Session\State\NativeState, 'storage' => new Universal\Session\Storage\NativeStorage, )); $counter = $session->get( 'counter' ); $session->set( 'counter' , ++$counter ); echo $session->get( 'counter' );
Session with memcache backend:, (*21)
$session = new Universal\Session\Session(array( 'state' => new Universal\Session\State\CookieState, 'storage' => new Universal\Session\Storage\MemcacheStorage, )); $counter = $session->get( 'counter' ); $session->set( 'counter' , ++$counter ); echo $session->get( 'counter' );
use Universal\Event\EventDispatcher; $e = Event::getInstance(); // register your handler $e->register('test', function($a, $b, $c) { // do what you want }); // trigger event handlers $e->trigger('test', 1,2,3);
Universal library for PHP
MIT