enalquiler / instanciate
A high order function to instanciate classes passing parameters
Installs: 6 306
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires (Dev)
- phpunit/phpunit: ^6.3
This package is not auto-updated.
Last update: 2025-04-11 09:57:50 UTC
README
A high order function to instanciate classes passing parameters.
Installation
composer require enalquiler/instanciate
Usage
A simple example
use DateTimeImmutable; use function Enalquiler\Functional\instanciate; $fn = instanciate(DateTimeImmutable::class, 'now'); $dateTimeImmutableInstance = $fn(); // Returns an instance of DateTimeImmutable class
A more complex example combining the lazy middleware function, compose function to compose functions, and the awesome functional PHP library to build middleware pipelines using Zend Stratigility
use Http\Factory\Diactoros\ResponseFactory; use Zend\Diactoros\Response; use Zend\Stratigility\MiddlewarePipe; use function igorw\pipeline; use function Functional\partial_right; require_once __DIR__ . '/../vendor/autoload.php'; $pipe = new MiddlewarePipe(); $pipe->setResponsePrototype(new Response()); $lazyMiddleware = partial_right( pipeline( 'Enalquiler\Functional\instanciate', 'Enalquiler\Middleware\lazy' ), new ResponseFactory() ); $pipe ->pipe($lazyMiddleware(LocaleMiddleware::class)) ->pipe($lazyMiddleware(SessionMiddleware::class, new \PredisSessionStorage())) ->pipe($lazyMiddleware(RedirectionsMiddleware::class)) ->pipe($lazyMiddleware(AdminMiddleware::class)) ->pipe($lazyMiddleware(WebMiddleware::class)) ->pipe($lazyMiddleware(NotFoundMiddleware::class)) ; $server = Server::createServer($app, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES); $server->listen(new Zend\Stratigility\NoopFinalHandler());
Running the tests
php vendor/bin/phpunit
Authors
- Christian Soronellas
- Enalquiler Engineering
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details