/** * {@inheritdoc} */ public function handle(Request $request, RequestContext $context, Closure $next) { if (!$request->getCookieBag()->has('username')) { return new Response('Please logged in first.'); } return $next(); }
/** * Get extension functions. * * @return array */ public function getFunctions() { $functions = array(new Twig_Function('route', array($this, 'generateRoute'))); if (null !== $this->request) { $functions[] = new Twig_Function('url', array($this->request->getUrl(), 'getUrlForPath')); } return $functions; }
public function testRequest() { $request = Request::create('https://localhost:8000/index.php/view/page?username=iqbal&firstName=Iqbal', Request::HTTP_METHOD_GET, array('lastName' => 'Maulana'), array('username' => 'test'), array('HTTP_USER_AGENT' => 'Php-Unit', 'SCRIPT_FILENAME' => '/index.php', 'SCRIPT_NAME' => '/index.php')); $this->assertEquals('Php-Unit', $request->getServerBag()->get('HTTP_USER_AGENT')); $this->assertEquals('https', $request->getSchemaHost()->getSchema()); $this->assertTrue($request->getHeaderBag()->has('host')); $this->assertTrue($request->getSchemaHost()->isSecure()); $this->assertSame(8000, $request->getSchemaHost()->getPort()); $this->assertEquals('localhost', $request->getSchemaHost()->getHost()); $this->assertEquals('localhost:8000', $request->getSchemaHost()->getHttpHost()); $this->assertTrue($request->isMethod('GET')); $request->setMethod('POST'); $this->assertTrue($request->isMethod('POST')); $this->assertEquals('/view/page', $request->getUri()->getPathInfo()); $this->assertCount(3, $request->getQueryBag()); $this->assertEquals('iqbal', $request->get('username')); $this->assertEquals('Maulana', $request->get('lastName')); $this->assertEquals('https://localhost:8000/index.php', $request->getUrl()->getBaseUrl()); $this->assertEquals('https://localhost:8000/index.php/home/landing', $request->getUrl()->getUrlForPath('home/landing')); $this->assertEquals('/index.php/demo/uri', $request->getUri()->getUriForPath('demo/uri')); $this->assertEquals('https://localhost:8000/index.php/view/page?firstName=Iqbal&lastName=Maulana&username=iqbal', $request->getUrl()->getFullUrl()); $this->assertSame(2, count($request->getLanguages())); $this->assertEquals('en-US', $request->getLanguages()[0]); $this->assertSame(3, count($request->getCharsets())); $this->assertEquals('utf-8', $request->getCharsets()[1]); $this->assertNull($request->getParameterBag()->get('lastName')); $this->assertInstanceOf('\\Borobudur\\Http\\Session', $request->getSession()); $this->assertInstanceOf('\\Borobudur\\Http\\UploadFileBag', $request->getFileBag()); $this->assertContains('test', $request->getCookieBag()->values()); $this->assertFalse($request->isXmlHttpRequest()); $this->assertFalse($request->isReadOnly()); $this->assertEmpty($request->getContent()); $request->setContent('test content'); $this->assertSame('test content', $request->getContent()); }
public function testLogoutOnLoginController() { $request = Request::create('/logout', Request::HTTP_METHOD_GET); $request->getCookieBag()->set('username', 'iqbal'); $kernel = $this->buildKernel($this->getRouteCollection(), $request); $kernel->boot(); $this->assertEquals('Logout', $this->responseEvent->getResponse()->getContent()); }
public function testErrorHandling() { $kernel = $this->buildKernel(Request::create('/'), new RouteCollection()); $kernel->addListenerOnce(KernelEvents::EXCEPTION, array($this, 'onRequestException')); $kernel->boot(); $event = $this->responseEvent; $this->assertEquals('No route found for "GET /".', $event->getException()->getMessage()); $this->assertSame(404, $event->getException()->getCode()); }
public function testControllerWithArguments() { $collection = new RouteCollection(); $collection->add('detail', (new Route('/detail/{id}/{slug}'))->setRequirement('id', '\\d+')->setRequirement('slug', '[a-z\\-]+')->handleWith('app.controller.default:detail')); $request = Request::create('/detail/5/hello-world', Request::HTTP_METHOD_POST); $kernel = $this->buildKernel($request, $collection); $kernel->boot(); $this->assertSame('POST: hello-world-5', $this->responseEvent->getResponse()->getContent()); }
/** * {@inheritdoc} */ public function send() { $data = array_merge(array('success' => $this->statusCode >= 200 && $this->statusCode <= 300, 'data' => $this->normalize($this->data)), $this->extra); switch (strtolower($this->request->get('format'))) { case 'debug': $this->setContent(sprintf('<pre>%s</pre>', print_r($data, true))); return parent::send(); break; case 'rjson': $response = new RJsonResponse($data, $this->statusCode, $this->headers->all()); break; default: $response = new JsonResponse($data, $this->statusCode, $this->headers->all()); } return $response->send(); }
/** * Fix content length header. * * @param Request $request */ private function fixContentLength(Request $request) { if ($this->headers->has('Transfer-Encoding')) { $this->headers->remove('Content-Length'); } if ($request->isMethod(Request::HTTP_METHOD_HEAD)) { $contentLengthHeader = $this->headers->first('Content-Length'); $this->setContent(null); if ($length = $contentLengthHeader->getFieldValue()) { $this->headers->set(new ContentLengthHeader($length), true); } } }
<?php /* * This file is part of the Cqrs-Framework package. * * (c) Hexacodelabs <http://hexacodelabs.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ use Borobudur\Http\Request; require_once __DIR__ . '/../app/bootstrap.php'; require_once __DIR__ . '/../app/AppKernel.php'; $kernel = new AppKernel('prod'); $kernel->listen(Request::createFromServer()); $kernel->boot();
public function detailAction($id, Request $request, $slug) { return new Response(sprintf('%s: %s-%d', $request->getMethod(), $slug, $id)); }
/** * Reschedule movie. * * @param string $id * @param Request $request * * @return JsonResponse */ public function rescheduleAction($id, Request $request) { $command = new RescheduleMovieCommand(MovieId::fromString($id), new DateTime($request->get('schedule'))); $response = $this->invoke($command); return $this->response(!empty($response) ? $response[0][0] : null); }