Расширение объекта CakeRequest - PullRequest
1 голос
/ 19 декабря 2011

У меня есть веб-приложение, написанное на CakePHP, которое должно считывать данные запроса из полезной нагрузки JSON, а не данные стандартного application / x-www-form-urlencoded. Я хотел бы иметь возможность получить доступ к этим данным с помощью стандартной методологии $ this-> request-> data. Существует ли поддерживаемый способ расширения объекта CakeRequest, чтобы он мог принимать запросы в этом формате?

1 Ответ

1 голос
/ 21 декабря 2011

Вот как можно настроить функциональность объекта CakeRequest:

Вставьте следующее в app / Config / bootstrap.php:

/**
 * Enable customization of the request object.  Ideas include:
 *   * Accepting data in formats other than x-www-form-urlencoded.
 */
require APP . 'Lib' . DS . 'Network' . DS . 'AppCakeRequest.php';

Создайте приложение / Lib / Network и добавьте AppCakeRequest.php:

<?php
/**
* AppCakeRequest
*
* Allows for custom handling of requests made to the application.
*/

class AppCakeRequest extends CakeRequest {
    // Do your magic, and be careful...
}

Редактировать приложение / webroot / index.php:

$Dispatcher->dispatch(new AppCakeRequest(), new CakeResponse(array('charset' => Configure::read('App.encoding'))));

Будьте осторожны, убедитесь, что вы знаете, что делаете, и удачи.

...