Оптимизация вычитки листов из кэша для генерации qr-кодов
This commit is contained in:
@@ -55,8 +55,9 @@ class ApiController extends BasicController
|
|||||||
*/
|
*/
|
||||||
public function makeQrCode(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
|
public function makeQrCode(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
|
||||||
{
|
{
|
||||||
|
$ini = ini()->load();
|
||||||
$code = $request->getAttribute('code');
|
$code = $request->getAttribute('code');
|
||||||
$codes = array_keys(ini()->getPlaylists());
|
$codes = array_keys($ini);
|
||||||
if (!in_array($code, $codes, true)) {
|
if (!in_array($code, $codes, true)) {
|
||||||
return $response->withStatus(404);
|
return $response->withStatus(404);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,19 +37,20 @@ class WebController extends BasicController
|
|||||||
public function home(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
|
public function home(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
|
||||||
{
|
{
|
||||||
$ini = ini()->load();
|
$ini = ini()->load();
|
||||||
|
$keys = [];
|
||||||
$count = count($ini);
|
$count = count($ini);
|
||||||
$pageSize = config('app.page_size');
|
$pageSize = config('app.page_size');
|
||||||
|
|
||||||
if ($pageSize > 0) {
|
if ($pageSize > 0) {
|
||||||
$pageCurrent = (int)($request->getAttributes()['page'] ?? $request->getQueryParams()['page'] ?? 1);
|
$pageCurrent = (int)($request->getAttributes()['page'] ?? $request->getQueryParams()['page'] ?? 1);
|
||||||
$pageCount = ceil($count / $pageSize);
|
$pageCount = ceil($count / $pageSize);
|
||||||
$offset = max(0, ($pageCurrent - 1) * $pageSize);
|
$offset = max(0, ($pageCurrent - 1) * $pageSize);
|
||||||
$ini = array_slice($ini, $offset, $pageSize, true);
|
$ini = array_slice($ini, $offset, $pageSize, true);
|
||||||
$playlists = ini()->getPlaylists(array_keys($ini));
|
$keys = array_keys($ini);
|
||||||
} else {
|
|
||||||
$playlists = ini()->getPlaylists();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$playlists = ini()->getPlaylists($keys);
|
||||||
|
|
||||||
return $this->view($request, $response, 'list.twig', [
|
return $this->view($request, $response, 'list.twig', [
|
||||||
'updatedAt' => ini()->updatedAt(),
|
'updatedAt' => ini()->updatedAt(),
|
||||||
'playlists' => $playlists,
|
'playlists' => $playlists,
|
||||||
|
|||||||
Reference in New Issue
Block a user