本文整理汇总了PHP中Cake\Network\Response::body方法的典型用法代码示例。如果您正苦于以下问题:PHP Response::body方法的具体用法?PHP Response::body怎么用?PHP Response::body使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cake\Network\Response
的用法示例。
在下文中一共展示了Response::body方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render
/**
* Instantiates the correct view class, hands it its data, and uses it to render the view output.
*
* @param string $view View to use for rendering
* @param string $layout Layout to use
* @return \Cake\Network\Response A response object containing the rendered view.
* @link http://book.cakephp.org/3.0/en/controllers.html#rendering-a-view
*/
public function render($view = null, $layout = null)
{
$builder = $this->viewBuilder();
if (!$builder->templatePath()) {
$builder->templatePath($this->_viewPath());
}
if (!empty($this->request->params['bare'])) {
$builder->autoLayout(false);
}
$builder->className($this->viewClass);
$this->autoRender = false;
$event = $this->dispatchEvent('Controller.beforeRender');
if ($event->result instanceof Response) {
return $event->result;
}
if ($event->isStopped()) {
return $this->response;
}
if ($builder->template() === null && isset($this->request->params['action'])) {
$builder->template($this->request->params['action']);
}
$this->View = $this->createView();
$this->response->body($this->View->render($view, $layout));
return $this->response;
}
示例2: create
/**
* Create the response.
*
* @param \League\Flysystem\FilesystemInterface $cache The cache file system.
* @param string $path The cached file path.
*
* @return \Cake\Network\Response The response object.
*/
public function create(FilesystemInterface $cache, $path)
{
$stream = $cache->readStream($path);
$contentType = $cache->getMimetype($path);
$contentLength = (string) $cache->getSize($path);
$response = new Response();
$response->type($contentType);
$response->header('Content-Length', $contentLength);
$response->body(function () use($stream) {
rewind($stream);
fpassthru($stream);
fclose($stream);
});
return $response;
}
示例3: render
/**
* @author Gaetan SENELLE
* @return Response
*/
public function render()
{
$response = new Response();
$exception = $this->error;
$code = $this->_code($exception);
$message = $this->_message($exception, $code);
$url = $this->controller->request->here();
$isDebug = Configure::read('debug');
$response->statusCode($code);
if (method_exists($exception, 'responseHeader')) {
$this->controller->response->header($exception->responseHeader());
}
$classname = get_class($exception);
if (preg_match('@\\\\([\\w]+)$@', $classname, $matches)) {
$classname = $matches[1];
} else {
$classname = null;
}
if (!$isDebug && !$exception instanceof ApiException && !$exception instanceof HttpException) {
$classname = null;
}
$data = ['exception' => ['type' => $classname, 'message' => $message, 'url' => h($url), 'code' => $code], 'success' => false];
$response->body(json_encode($data));
$response->type('json');
return $response;
}
示例4: filterResponse
/**
* Filters the cake response to the BrowserKit one.
*
* @param \Cake\Network\Response $response Cake response.
* @return \Symfony\Component\BrowserKit\Response BrowserKit response.
*/
protected function filterResponse($response)
{
$this->cake['response'] = $response;
foreach ($response->cookie() as $cookie) {
$this->getCookieJar()->set(new Cookie($cookie['name'], $cookie['value'], $cookie['expire'], $cookie['path'], $cookie['domain'], $cookie['secure'], $cookie['httpOnly']));
}
$response->sendHeaders();
return new BrowserKitResponse($response->body(), $response->statusCode(), $response->header());
}
示例5: afterDispatch
public function afterDispatch(Event $event, Request $request, Response $response)
{
if (Configure::read('debug') || !isset($request->params['cache']) || $request->params['cache'] !== true) {
return;
}
unset($request->params['cache']);
$cacheKey = $this->_getCacheKey($request);
if ($cacheKey !== false) {
$content = $response->body();
Cache::write($cacheKey, $content, 'wasabi/cms/pages');
}
}
示例6: unauthenticated
/**
* @param \Cake\Network\Request $request Request to get authentication information from.
* @param \Cake\Network\Response $response A response object that can have headers added.
* @return bool|\Cake\Network\Response
*/
public function unauthenticated(Request $request, Response $response)
{
if ($this->_config['continue']) {
return false;
}
if (isset($this->_exception)) {
$response->statusCode($this->_exception->httpStatusCode);
$response->header($this->_exception->getHttpHeaders());
$response->body(json_encode(['error' => $this->_exception->errorType, 'message' => $this->_exception->getMessage()]));
return $response;
}
$message = __d('authenticate', 'You are not authenticated.');
throw new BadRequestException($message);
}
示例7: checkMaintenance
/**
* Main functionality to trigger maintenance mode.
* Will automatically set the appropriate headers.
*
* Tip: Check for non CLI first
*
* if (php_sapi_name() !== 'cli') {
* App::uses('MaintenanceLib', 'Setup.Lib');
* $Maintenance = new MaintenanceLib();
* $Maintenance->checkMaintenance();
* }
*
* @param string|null $ipAddress
* @param bool $exit If Response should be sent and exited.
* @return void
* @deprecated Use Maintenance DispatcherFilter
*/
public function checkMaintenance($ipAddress = null, $exit = true)
{
if ($ipAddress === null) {
$ipAddress = env('REMOTE_ADDRESS');
}
if (!$this->isMaintenanceMode($ipAddress)) {
return;
}
$Response = new Response();
$Response->statusCode(503);
$Response->header('Retry-After', DAY);
$body = __d('setup', 'Maintenance work');
$template = APP . 'Template' . DS . 'Error' . DS . $this->template;
if (file_exists($template)) {
$body = file_get_contents($template);
}
$Response->body($body);
if ($exit) {
$Response->send();
exit;
}
}
示例8: toPsr
/**
* Convert a CakePHP response into a PSR7 one.
*
* @param CakeResponse $response The CakePHP response to convert
* @return PsrResponse $response The equivalent PSR7 response.
*/
public static function toPsr(CakeResponse $response)
{
$status = $response->statusCode();
$headers = $response->header();
if (!isset($headers['Content-Type'])) {
$headers['Content-Type'] = $response->type();
}
$body = $response->body();
$stream = 'php://memory';
if (is_string($body)) {
$stream = new Stream('php://memory', 'wb');
$stream->write($response->body());
}
if (is_callable($body)) {
$stream = new CallbackStream($body);
}
// This is horrible, but CakePHP doesn't have a getFile() method just yet.
$fileProp = new \ReflectionProperty($response, '_file');
$fileProp->setAccessible(true);
$file = $fileProp->getValue($response);
if ($file) {
$stream = new Stream($file->path, 'rb');
}
return new DiactorosResponse($stream, $status, $headers);
}
示例9: testBody
/**
* Tests the body method
*
* @return void
*/
public function testBody()
{
$response = new Response();
$this->assertNull($response->body());
$response->body('Response body');
$this->assertEquals('Response body', $response->body());
$this->assertEquals('Changed Body', $response->body('Changed Body'));
}
示例10: assertResponseEmpty
/**
* Assert response content is empty.
*
* @param string $message The failure message that will be appended to the generated message.
* @return void
*/
public function assertResponseEmpty($message = '')
{
if (!$this->_response) {
$this->fail('No response set, cannot assert content. ' . $message);
}
$this->assertEmpty((string) $this->_response->body(), $message);
}
示例11: assertResponseContains
/**
* Assert content exists in the response body.
*
* @param string $content The content to check for.
* @param string $message The failure message that will be appended to the generated message.
* @return void
*/
public function assertResponseContains($content, $message = '')
{
if (!$this->_response) {
$this->fail('No response set, cannot assert content. ' . $message);
}
$this->assertContains($content, $this->_response->body(), $message);
}
示例12: testQueryStringAndCustomTime
/**
* test setting parameters in beforeDispatch method
*
* @return void
*/
public function testQueryStringAndCustomTime()
{
$folder = CACHE . 'views' . DS;
$file = $folder . 'posts-home-coffee-life-sleep-sissies-coffee-life-sleep-sissies.html';
$content = '<!--cachetime:' . (time() + WEEK) . ';ext:html-->Foo bar';
file_put_contents($file, $content);
Router::reload();
Router::connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);
Router::connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']);
Router::connect('/:controller/:action/*');
$_GET = ['coffee' => 'life', 'sleep' => 'sissies'];
$filter = new CacheFilter();
$request = new Request('posts/home/?coffee=life&sleep=sissies');
$response = new Response();
$event = new Event(__CLASS__, $this, compact('request', 'response'));
$filter->beforeDispatch($event);
$result = $response->body();
$expected = '<!--created:';
$this->assertTextStartsWith($expected, $result);
$expected = '-->Foo bar';
$this->assertTextEndsWith($expected, $result);
$result = $response->type();
$expected = 'text/html';
$this->assertEquals($expected, $result);
$result = $response->header();
$this->assertNotEmpty($result['Expires']);
// + 1 week
unlink($file);
}
示例13: unauthenticated
/**
* @param \Cake\Network\Request $request Request to get authentication information from.
* @param \Cake\Network\Response $response A response object that can have headers added.
* @return bool|\Cake\Network\Response
*/
public function unauthenticated(Request $request, Response $response)
{
if ($this->_config['continue']) {
return false;
}
if (isset($this->_exception)) {
$response->statusCode($this->_exception->httpStatusCode);
//add : to http code for cakephp (header method in Network/Response expects header separated with colon notation)
$headers = $this->_exception->getHttpHeaders();
$code = (string) $this->_exception->httpStatusCode;
$headers = array_map(function ($header) use($code) {
$pos = strpos($header, $code);
if ($pos !== false) {
return substr($header, 0, $pos + strlen($code)) . ':' . substr($header, $pos + strlen($code) + 1);
}
return $header;
}, $headers);
$response->header($headers);
$response->body(json_encode(['error' => $this->_exception->errorType, 'message' => $this->_exception->getMessage()]));
return $response;
}
$message = __d('authenticate', 'You are not authenticated.');
throw new BadRequestException($message);
}
示例14: beforeRedirect
/**
* Handles (fakes) redirects for Ajax requests using requestAction()
* Modifies the $_POST and $_SERVER['REQUEST_METHOD'] to simulate a new GET request.
*
* @param Event $event The Controller.beforeRedirect event.
* @param string|array $url A string or array containing the redirect location
* @param \Cake\Network\Response $response The response object.
* @return void
*/
public function beforeRedirect(Event $event, $url, $response)
{
if (!$this->request->is('ajax')) {
return;
}
if (empty($url)) {
return;
}
$_SERVER['REQUEST_METHOD'] = 'GET';
foreach ($_POST as $key => $val) {
unset($_POST[$key]);
}
if (is_array($url)) {
$url = Router::url($url + array('base' => false));
}
$controller = $event->subject();
$response->body($controller->requestAction($url, array('return', 'bare' => false)));
$response->send();
$response->stop();
}
示例15: beforeRedirect
/**
* Handles (fakes) redirects for AJAX requests using requestAction()
*
* @param Event $event The Controller.beforeRedirect event.
* @param string|array $url A string or array containing the redirect location
* @param \Cake\Network\Response $response The response object.
* @return void|\Cake\Network\Response The response object if the redirect is caught.
*/
public function beforeRedirect(Event $event, $url, Response $response)
{
$request = $this->request;
if (!$request->is('ajax')) {
return;
}
if (empty($url)) {
return;
}
if (is_array($url)) {
$url = Router::url($url + ['_base' => false]);
}
$controller = $event->subject();
$response->body($controller->requestAction($url, ['return', 'bare' => false, 'environment' => ['REQUEST_METHOD' => 'GET']]));
$response->statusCode(200);
return $response;
}