CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.10 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.10
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
      • Client
      • Cookie
      • Exception
      • Middleware
      • Session
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class BodyParserMiddleware

Parse encoded request body data.

Enables JSON and XML request payloads to be parsed into the request's Provides CSRF protection & validation.

You can also add your own request body parsers using the addParser() method.

Namespace: Cake\Http\Middleware

Property Summary

  • $methods protected
    string[]

    The HTTP methods to parse data on.

  • $parsers protected
    array

    Registered Parsers

Method Summary

  • __construct() public

    Constructor

  • __invoke() public

    Apply the middleware.

  • addParser() public

    Add a parser.

  • decodeJson() protected

    Decode JSON into an array.

  • decodeXml() protected

    Decode XML into an array.

  • setMethods() public

    Set the HTTP methods to parse request bodies on.

Method Detail

__construct() ¶ public

__construct(array $options = [])

Constructor

Options

  • json Set to false to disable json body parsing.
  • xml Set to true to enable XML parsing. Defaults to false, as XML handling requires more care than JSON does.
  • methods The HTTP methods to parse on. Defaults to PUT, POST, PATCH DELETE.
Parameters
array $options optional

The options to use. See above.

__invoke() ¶ public

__invoke(Psr\Http\Message\ServerRequestInterface $request, Psr\Http\Message\ResponseInterface $response, callable $next): Cake\Http\Response

Apply the middleware.

Will modify the request adding a parsed body if the content-type is known.

Parameters
Psr\Http\Message\ServerRequestInterface $request

The request.

Psr\Http\Message\ResponseInterface $response

The response.

callable $next

Callback to invoke the next middleware.

Returns
Cake\Http\Response

addParser() ¶ public

addParser(string[] $types, callable $parser): $this

Add a parser.

Map a set of content-type header values to be parsed by the $parser.

Example

An naive CSV request body parser could be built like so:

$parser->addParser(['text/csv'], function ($body) {
  return str_getcsv($body);
});
Parameters
string[] $types

An array of content-type header values to match. eg. application/json

callable $parser

The parser function. Must return an array of data to be inserted into the request.

Returns
$this

decodeJson() ¶ protected

decodeJson(string $body): array

Decode JSON into an array.

Parameters
string $body

The request body to decode

Returns
array

decodeXml() ¶ protected

decodeXml(string $body): array

Decode XML into an array.

Parameters
string $body

The request body to decode

Returns
array

setMethods() ¶ public

setMethods(string[] $methods): $this

Set the HTTP methods to parse request bodies on.

Parameters
string[] $methods

The methods to parse data on.

Returns
$this

Property Detail

$methods ¶ protected

The HTTP methods to parse data on.

Type
string[]

$parsers ¶ protected

Registered Parsers

Type
array
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs