Home>Article>Backend Development> what is php middleware

what is php middleware

(*-*)浩
(*-*)浩 Original
2019-09-06 14:23:53 4928browse

what is php middleware

#php middleware (middleware) is a closure and returns a closure.

Middleware provides a convenient mechanism for filtering HTTP requests entering the application, which can be divided into pre-middleware and post-middleware. Commonly used to verify whether the user is authenticated, add response headers (cross-domain), record request logs, etc.(Recommended learning:PHP programming from entry to proficiency)

what is php middleware

##Example

 $middleware) { $handler = $middleware($handler); } return $handler; } // 注册中间件 // 这里用的都是全局中间件,实际应用时还可以为指定路由注册局部中间件 $stack['log'] = $log; $stack['filter'] = $filter; $stack['auth'] = $auth; $run = pack_middleware($application, $stack); $run('Laravle');

Output :

Laravle need a filter middleware Laravle need a auth middleware this is a Laravle application Laravle need a log middleware

Packaging program

The execution order of middleware is determined by the packaging function (pack_middleware). The closure returned here is actually equivalent to:

$run = $log($filter($auth($application))); $run('Laravle');

Writing specifications

Middleware must meet certain specifications: always return a closure, and always pass in the same parameters in the closure (determined by the main logic), The closure always returns the execution result of the handler;

If the logic of the middleware is completed before returning the handle return $handler($name), it is a pre-middleware, otherwise it is a post-middleware.

The above is the detailed content of what is php middleware. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn