Метод __invoke() позволяет определить логику работы объекта, при попытке обратиться к нему как к обычной функции. Этот метод может использоваться для передачи класса, который может действовать как замыкание, или просто как функция.
Метод __invoke - это способ, которым PHP может поддерживать функции псевдо-первого класса.
https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D...
Реальный пример:
<?php
class ExampleMiddleware
{
/**
* Example middleware invokable class
*
* @param \Psr\Http\Message\ServerRequestInterface $request PSR7 request
* @param \Psr\Http\Message\ResponseInterface $response PSR7 response
* @param callable $next Next middleware
*
* @return \Psr\Http\Message\ResponseInterface
*/
public function __invoke($request, $response, $next)
{
$response->getBody()->write('BEFORE');
$response = $next($request, $response);
$response->getBody()->write('AFTER');
return $response;
}
}
$subject->add( new ExampleMiddleware() );
www.slimframework.com/docs/v3/concepts/middleware.html
UPD:
https://stackoverflow.com/questions/888064/php-5-3...