本文整理汇总了PHP中Cake\Network\Response类的典型用法代码示例。如果您正苦于以下问题:PHP Response类的具体用法?PHP Response怎么用?PHP Response使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Response类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: beforeDispatch
public function beforeDispatch(Event $event)
{
$event->stopPropagation();
$response = new Response(['body' => $this->config('message')]);
$response->httpCodes([429 => 'Too Many Requests']);
$response->statusCode(429);
return $response;
}
示例2: 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;
}
示例3: build
/**
* Apply the queued headers to the response.
*
* If the builder has no Origin, or if there are no allowed domains,
* or if the allowed domains do not match the Origin header no headers will be applied.
*
* @return \Cake\Network\Response
*/
public function build()
{
if (empty($this->_origin)) {
return $this->_response;
}
if (isset($this->_headers['Access-Control-Allow-Origin'])) {
$this->_response->header($this->_headers);
}
return $this->_response;
}
示例4: beforeRedirect
/**
* Manage redirect for specific buttons that posted.
*
* @param Event $event
* @param array|string $url
* @param Response $response
* @return bool
*/
public function beforeRedirect(Event $event, $url, Response $response)
{
if ($this->request->param('prefix') == 'admin') {
if (isset($this->request->data['apply'])) {
$response->location(Router::url($this->request->here(false), true));
}
}
return true;
}
示例5: 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;
}
示例6: _verifyCode
/**
* Verify one-time code. If code not provided - redirect to verifyAction. If code provided and is not valid -
* set flash message and redirect to verifyAction. Otherwise - return true.
*
* @param string $secret user's secret
* @param string $code one-time code
* @param Response $response response instance
* @var AuthComponent $Auth used Auth component
* @return bool
* @throws Exception
*/
protected function _verifyCode($secret, $code, Response $response)
{
$Auth = $this->_registry->getController()->Auth;
if (!$Auth instanceof AuthComponent) {
throw new Exception('TwoFactorAuth.Auth component has to be used for authentication.');
}
$verifyAction = Router::url($Auth->config('verifyAction'), true);
if ($code === null) {
$response->location($verifyAction);
return false;
}
if (!$Auth->verifyCode($secret, $code)) {
$Auth->flash(__d('TwoFactorAuth', 'Invalid two-step verification code.'));
$response->location($verifyAction);
return false;
}
return true;
}
示例7: beforeRender
/**
* Checks if the response can be considered different according to the request
* headers, and the caching response headers. If it was not modified, then the
* render process is skipped. And the client will get a blank response with a
* "304 Not Modified" header.
*
* - If Router::extensions() is enabled, the layout and template type are
* switched based on the parsed extension or Accept-Type header. For example,
* if `controller/action.xml` is requested, the view path becomes
* `app/View/Controller/xml/action.ctp`. Also if `controller/action` is
* requested with `Accept-Type: application/xml` in the headers the view
* path will become `app/View/Controller/xml/action.ctp`. Layout and template
* types will only switch to mime-types recognized by Cake\Network\Response.
* If you need to declare additional mime-types, you can do so using
* Cake\Network\Response::type() in your controller's beforeFilter() method.
* - If a helper with the same name as the extension exists, it is added to
* the controller.
* - If the extension is of a type that RequestHandler understands, it will
* set that Content-type in the response header.
*
* @param Event $event The Controller.beforeRender event.
* @return bool false if the render process should be aborted
*/
public function beforeRender(Event $event)
{
$isRecognized = !in_array($this->ext, ['html', 'htm']) && $this->response->getMimeType($this->ext);
if (!empty($this->ext) && $isRecognized) {
$this->renderAs($event->subject(), $this->ext);
} elseif (empty($this->ext) || in_array($this->ext, ['html', 'htm'])) {
$this->respondAs('html', ['charset' => Configure::read('App.encoding')]);
}
if ($this->_config['checkHttpCache'] && $this->response->checkNotModified($this->request)) {
return false;
}
}
示例8: 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;
}
示例9: 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');
}
}
示例10: 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);
}
示例11: 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;
}
}
示例12: 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());
}
示例13: 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);
}
示例14: 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);
}
示例15: 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 null;
}
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);
}