getAttribute() public method

public getAttribute ( $attribute, $default = null )
 /**
  * Create instance
  *
  * @return Engine
  */
 public function create(Request $request)
 {
     $engine = new Engine($this->options['view_path'], null);
     // Add folder shortcut (assets::file.js)
     $engine->addFolder('assets', $this->options['assets_path']);
     $engine->addFolder('view', $this->options['view_path']);
     $session = $request->getAttribute(SessionMiddleware::ATTRIBUTE);
     $baseUrl = $request->getAttribute('base_url');
     // Register Asset extension
     $cacheOptions = array('cachepath' => $this->options['cache_path'], 'cachekey' => $session->get('user.locale'), 'baseurl' => $baseUrl, 'minify' => $this->options['minify']);
     $engine->loadExtension(new \Odan\Plates\Extension\AssetCache($cacheOptions));
     return $engine;
 }
 /**
  * Action (JsonRpc)
  *
  * @param Request $request
  * @param Response $response
  * @return mixed
  */
 public function load(Request $request = null, Response $response = null)
 {
     $json = $request->getAttribute('json');
     $params = value($json, 'params');
     $result = ['status' => 1];
     return $result;
 }
 /**
  * Check user session login
  *
  * @param Request $request
  * @param Response $response
  * @return bool|Response
  */
 public static function check(Request $request, Response $response, $action, $callback)
 {
     /* @var $app AppContainer */
     $app = $request->getAttribute(\App\Middleware\AppMiddleware::ATTRIBUTE);
     if (!static::isAuthRequired($app, $action)) {
         return true;
     }
     $userSession = new UserSession($app);
     if ($userSession->isValid()) {
         return true;
     } else {
         $http = new \App\Util\Http($request, $response);
         if ($http->isJsonRpc()) {
             $json = new \App\Util\JsonServer($request, $response);
             $jsonContent = $json->getResponseByError('Unauthorized', 0, 0, 401);
             return $jsonContent;
         } else {
             $uri = $app->http->getBaseUrl('/login');
             return new RedirectResponse($uri);
             // alternative would be
             // new HtmlResponse('401 Unauthorized', 401);
         }
     }
     return true;
 }
Beispiel #4
0
 public function getData(Request $request, array $data = null)
 {
     $result = ['baseurl' => $request->getAttribute('base_url')];
     if (!empty($data)) {
         $result = array_replace_recursive($result, $data);
     }
     return $result;
 }
 /**
  * Handle an exception and generate an error response.
  *
  * @param Exception $ex The exception to handle.
  * @param Request $request The request.
  * @param Response $response The response.
  * @return Response A response
  */
 public function handleException(Exception $ex, Request $request, Response $response)
 {
     $message = sprintf("[%s] %s\n%s", get_class($ex), $ex->getMessage(), $ex->getTraceAsString());
     // Must be PSR logger (Monolog)
     $logger = $request->getAttribute(\App\Middleware\LoggerMiddleware::ATTRIBUTE);
     if (!empty($logger)) {
         $logger->error($message);
     }
     $stream = new Stream('php://temp', 'wb+');
     $stream->write('An Internal Server Error Occurred');
     // Verbose error output
     if (!empty($this->config['verbose'])) {
         $stream->write("\n<br>{$message}");
     }
     $response = $response->withStatus(500)->withBody($stream);
     return $response;
 }
Beispiel #6
0
 /**
  * Create instance
  *
  * @return AppContainer
  */
 public function create(Request $request)
 {
     $app = new \App\Container\AppContainer();
     $app->config = $this->config;
     $app->logger = $request->getAttribute(LoggerMiddleware::ATTRIBUTE);
     $app->session = $request->getAttribute(SessionMiddleware::ATTRIBUTE);
     $app->translator = $request->getAttribute(TranslatorMiddleware::ATTRIBUTE);
     $app->db = $request->getAttribute(CakeDatabaseMiddleware::ATTRIBUTE);
     $app->view = $request->getAttribute(PlatesMiddleware::ATTRIBUTE);
     $app->http = $request->getAttribute(HttpMiddleware::ATTRIBUTE);
     $app->user = new \App\Service\User\UserSession($app);
     $app->user->setLocale($app->user->getLocale());
     return $app;
 }
 /**
  * Edit
  *
  * @param Request $request
  * @param Response $response
  * @return Response
  */
 public function edit(Request $request = null, Response $response = null)
 {
     // All GET parameters
     $queryParams = $request->getQueryParams();
     // All POST or PUT parameters
     $postParams = $request->getParsedBody();
     // Single GET parameter
     //$title = $queryParams['title'];
     //
     // Single POST/PUT parameter
     //$data = $postParams['data'];
     //
     // Get routing arguments
     $vars = $request->getAttribute('vars');
     $id = $vars['id'];
     // Get config value
     $app = $this->app($request);
     $env = $app->config['env']['name'];
     // Get GET parameter
     $id = $app->http->get('id');
     // Increment counter
     $counter = $app->session->get('counter', 0);
     $counter++;
     $app->session->set('counter', $counter);
     $app->logger->info('My log message');
     // Set locale
     //$app->session->set('user.locale', 'de_DE');
     //
     //Model example
     //$user = new \App\Model\User($app);
     //$userRows = $user->getAll();
     //$userRow = $user->getById($id);
     //
     // Add data to template
     $data = $this->getData($request, ['id' => $id, 'assets' => $this->getAssets(), 'content' => 'view::User/html/edit.html.php']);
     // Render template
     $content = $app->view->render('view::Layout/html/layout.html.php', $data);
     // Return new response
     $response->getBody()->write($content);
     return $response;
 }
 public function testNotEmmitRequestIdToResponse()
 {
     $requestIdProviderFactory = $this->getMock(RequestIdProviderFactoryInterface::class);
     $requestIdProvider = $this->getMock(RequestIdProviderInterface::class);
     $requestIdProviderFactory->method('create')->willReturn($requestIdProvider);
     $requestIdProvider->method('getRequestId')->willReturn('123456789');
     $middleware = new RequestIdMiddleware($requestIdProviderFactory, null);
     $request = new ServerRequest();
     $response = new Response();
     $calledOut = false;
     $outFunction = function ($request, $response) use(&$calledOut) {
         $calledOut = true;
         $this->assertSame('123456789', $request->getAttribute(RequestIdMiddleware::ATTRIBUTE_NAME));
         return $response;
     };
     $result = call_user_func($middleware, $request, $response, $outFunction);
     $this->assertTrue($calledOut, 'Out is not called');
     $this->assertSame($response, $result);
     $this->assertEquals(null, $result->getHeaderLine(RequestIdProvider::DEFAULT_REQUEST_HEADER));
     $this->assertSame('123456789', $middleware->getRequestId());
 }
 public function testDontGenerateBecouseHeaderExists()
 {
     $this->generator->expects($this->never())->method('generateRequestId');
     $middleware = new RequestIdMiddleware($this->generator);
     $request = new ServerRequest([], [], 'https://github.com/php-middleware/request-id', 'GET', 'php://input', [RequestIdMiddleware::DEFAULT_HEADER_REQUEST_ID => '987654321']);
     $response = new Response();
     $calledOut = false;
     $outFunction = function ($request, $response) use(&$calledOut) {
         $calledOut = true;
         $this->assertSame('987654321', $request->getAttribute(RequestIdMiddleware::ATTRIBUTE_NAME));
         return $response;
     };
     $result = call_user_func($middleware, $request, $response, $outFunction);
     $this->assertTrue($calledOut, 'Out is not called');
     $this->assertNotSame($response, $result);
     $this->assertEquals('987654321', $result->getHeaderLine(RequestIdMiddleware::DEFAULT_HEADER_REQUEST_ID));
     $this->assertSame('987654321', $middleware->getRequestId());
 }