`phpstorm:` of type `string` to int
📋
*/ |
|
protected function checkNumeric(mixed $value): void |
|
{ |
|
if (!is_numeric($value) && !is_bool($value)) { |
|
throw new InvalidArgumentException(sprintf( |
|
'Cannot convert value `%s` of type `%s` to int', |
|
print_r($value, true), |
|
get_debug_type($value), |
|
)); |
if ($value === null || $value === '') { |
|
return null; |
|
} |
|
|
|
$this->checkNumeric($value); |
|
|
|
return (int)$value; |
|
} |
|
|
if (is_string($type)) { |
|
$type = TypeFactory::build($type); |
|
} |
|
if ($type instanceof TypeInterface) { |
|
$value = $type->toDatabase($value, $this->_driver); |
|
$type = $type->toStatement($value, $this->_driver); |
|
} |
|
|
|
return [$value, $type]; |
public function bindValue(string|int $column, mixed $value, string|int|null $type = 'string'): void |
|
{ |
|
$type ??= 'string'; |
|
if (!is_int($type)) { |
|
[$value, $type] = $this->cast($value, $type); |
|
} |
|
|
|
$this->params[$column] = $value; |
|
$this->performBind($column, $value, $type); |
return; |
|
} |
|
|
|
foreach ($bindings as $b) { |
|
$statement->bindValue($b['placeholder'], $b['value'], $b['type']); |
|
} |
|
} |
|
|
|
/** |
*/ |
|
public function run(Query $query): StatementInterface |
|
{ |
|
$statement = $this->prepare($query); |
|
$query->getValueBinder()->attachTo($statement); |
|
|
|
if ($query instanceof SelectQuery) { |
|
try { |
|
$this->getPdo()->setAttribute($this->attrUseBufferedQueryId(), $query->isBufferedResultsEnabled()); |
* @return \Cake\Database\StatementInterface executed statement |
|
*/ |
|
public function run(Query $query): StatementInterface |
|
{ |
|
return $this->getDisconnectRetry()->run(fn() => $this->getDriver($query->getConnectionRole())->run($query)); |
|
} |
|
|
|
/** |
|
* Get query factory instance. |
{ |
|
$this->numRetries = 0; |
|
while (true) { |
|
try { |
|
return $action(); |
|
} catch (Exception $e) { |
|
if ( |
|
$this->numRetries < $this->maxRetries && |
|
$this->strategy->shouldRetry($e, $this->numRetries) |
* @return \Cake\Database\StatementInterface executed statement |
|
*/ |
|
public function run(Query $query): StatementInterface |
|
{ |
|
return $this->getDisconnectRetry()->run(fn() => $this->getDriver($query->getConnectionRole())->run($query)); |
|
} |
|
|
|
/** |
|
* Get query factory instance. |
*/ |
|
public function execute(): StatementInterface |
|
{ |
|
$this->_statement = null; |
|
$this->_statement = $this->_connection->run($this); |
|
$this->_dirty = false; |
|
|
|
return $this->_statement; |
|
} |
*/ |
|
public function all(): iterable |
|
{ |
|
if ($this->_results === null || $this->_dirty) { |
|
$this->_results = $this->execute()->fetchAll(StatementInterface::FETCH_TYPE_ASSOC); |
|
} |
|
|
|
return $this->_results; |
|
} |
return $this->_results; |
|
} |
|
|
|
if ($this->bufferedResults) { |
|
$results = parent::all(); |
|
} else { |
|
$results = $this->execute(); |
|
} |
|
$results = $this->getEagerLoader()->loadExternal($this, $results); |
} |
|
|
|
$results = $this->_cache?->fetch($this); |
|
if ($results === null) { |
|
$results = $this->_decorateResults($this->_execute()); |
|
$this->_cache?->store($this, $results); |
|
} |
|
$this->_results = $results; |
|
|
if ($this->_dirty) { |
|
$this->limit(1); |
|
} |
|
|
|
return $this->all()->first(); |
|
} |
|
|
|
/** |
|
* Get the first result from the executing query or raise an exception. |
* @return mixed The first result from the ResultSet. |
|
*/ |
|
public function firstOrFail(): mixed |
|
{ |
|
$entity = $this->first(); |
|
if (!$entity) { |
|
$table = $this->getRepository(); |
|
throw new RecordNotFoundException(sprintf( |
|
'Record not found in table `%s`.', |
$query->cache($cacheKey, $cache); |
|
} |
|
|
|
/** @var TEntity $entity */ |
|
$entity = $query->firstOrFail(); |
|
|
|
return $entity; |
|
} |
|
|
* @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. |
|
*/ |
|
public function view($id = null) |
|
{ |
|
$application = $this->Applications->get($id, [ |
|
'contain' => ['Claims', 'Figures', 'Paragraphs', 'Terms'], |
|
]); |
|
|
|
$this->set(compact('application')); |
* @return void |
|
*/ |
|
public function invokeAction(Closure $action, array $args): void |
|
{ |
|
$result = $action(...$args); |
|
if ($result !== null) { |
|
assert( |
|
$result instanceof Response, |
|
sprintf( |
$args = $this->getActionArgs( |
|
$action, |
|
array_values((array)$controller->getRequest()->getParam('pass')), |
|
); |
|
$controller->invokeAction($action, $args); |
|
|
|
$result = $controller->shutdownProcess(); |
|
if ($result !== null) { |
|
return $result; |
|
|
return $runner->run($middlewareQueue, $controller->getRequest(), $this); |
|
} |
|
|
|
return $this->handle($controller->getRequest()); |
|
} |
|
|
|
/** |
|
* Invoke the action. |
} |
|
|
|
$controller = $this->controllerFactory->create($request); |
|
|
|
return $this->controllerFactory->invoke($controller); |
|
} |
|
} |
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
|
} |
|
|
|
return new Response([ |
|
'body' => 'Middleware queue was exhausted without returning a response ' |
|
|
if ($method === 'GET' && $cookieData === null) { |
|
$token = $this->createToken(); |
|
$request = $request->withAttribute('csrfToken', $this->saltToken($token)); |
|
$response = $handler->handle($request); |
|
|
|
return $this->_addTokenCookie($token, $request, $response); |
|
} |
|
|
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
*/ |
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface |
|
{ |
|
if (!in_array($request->getMethod(), $this->methods, true)) { |
|
return $handler->handle($request); |
|
} |
|
[$type] = explode(';', $request->getHeaderLine('Content-Type')); |
|
$type = strtolower($type); |
|
if (!isset($this->parsers[$type])) { |
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
$request = $request->withAttribute($attribute, $identity); |
|
} |
|
|
|
try { |
|
$response = $handler->handle($request); |
|
|
|
if ($this->getConfig('requireAuthorizationCheck') && !$service->authorizationChecked()) { |
|
throw new AuthorizationRequiredException(['url' => $request->getRequestTarget()]); |
|
} |
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
$request = $request->withAttribute('authentication', $service); |
|
$request = $request->withAttribute('authenticationResult', $result); |
|
|
|
try { |
|
$response = $handler->handle($request); |
|
$authenticator = $service->getAuthenticationProvider(); |
|
|
|
if ($authenticator !== null && !$authenticator instanceof StatelessInterface && $result->getData()) { |
|
$return = $service->persistIdentity($request, $response, $result->getData()); |
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
); |
|
} |
|
$matching = Router::getRouteCollection()->getMiddleware($middleware); |
|
if (!$matching) { |
|
return $handler->handle($request); |
|
} |
|
|
|
$container = $this->app instanceof ContainerApplicationInterface |
|
? $this->app->getContainer() |
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface |
|
{ |
|
$url = $request->getUri()->getPath(); |
|
if (str_contains($url, '..') || !str_contains($url, '.')) { |
|
return $handler->handle($request); |
|
} |
|
|
|
if (str_contains($url, '/.')) { |
|
return $handler->handle($request); |
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
*/ |
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface |
|
{ |
|
try { |
|
return $handler->handle($request); |
|
} catch (RedirectException $exception) { |
|
return $this->handleRedirect($exception); |
|
} catch (Throwable $exception) { |
|
return $this->handleException($exception, Router::getRequest() ?? $request); |
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
if ($this->service->isEnabled()) { |
|
$this->service->loadPanels(); |
|
$this->service->initializePanels(); |
|
} |
|
$response = $handler->handle($request); |
|
|
|
if (!$this->service->isEnabled()) { |
|
return $response; |
|
} |
if ($this->queue->valid()) { |
|
$middleware = $this->queue->current(); |
|
$this->queue->next(); |
|
|
|
return $middleware->process($request, $this); |
|
} |
|
|
|
if ($this->fallbackHandler) { |
|
return $this->fallbackHandler->handle($request); |
$this->queue = $queue; |
|
$this->queue->rewind(); |
|
$this->fallbackHandler = $fallbackHandler; |
|
|
|
return $this->handle($request); |
|
} |
|
|
|
/** |
|
* Handle incoming server request and return a response. |
} |
|
|
|
$this->dispatchEvent('Server.buildMiddleware', ['middleware' => $middleware]); |
|
|
|
$response = $this->runner->run($middleware, $request, $this->app); |
|
|
|
if ($request instanceof ServerRequest) { |
|
$request->getSession()->close(); |
|
} |
// Bind your application to the server. |
|
$server = new Server(new Application(dirname(__DIR__) . '/config')); |
|
|
|
// Run the request/response through the application and emit the response. |
|
$server->emit($server->run()); |
|
|
If you want to customize this error message, create templates/Error/error500.php