TYPO3: проблема с производительностью при нумерации страниц.Php

Кемеровские программисты php общаются здесь
Anonymous
TYPO3: проблема с производительностью при нумерации страниц.

Сообщение Anonymous »

В настоящее время я создаю своего рода видеоканал на основе созданного мной расширения. Он состоит из видео и списка воспроизведения, который содержит видео (очевидно).
Мне нужно создать страницу, содержащую список видео И список воспроизведения по категориям. Вы также можете сортировать эти элементы по дате. Наконец, страница разбивается на страницы с бесконечной прокруткой, которая должна загружать элементы 21 по 21.
Для этого я создал в репозиториях видео и плейлистов функцию findByCategory, которая очень проста:

Код: Выделить всё

$query = $this->createQuery();
return $query->matching($query->equals('categorie.uid',$categoryUid))->execute()->toArray();
После того как я запросил нужные мне элементы, я объединяю их в один массив и занимаюсь сортировкой. Вот действие моего контроллера:

Код: Выделить всё

    if ($this->request->hasArgument('sort'))
$sort = $this->request->getArgument('sort');
else
$sort = 'antechrono';
//Get videos in repositories
$videos = $this->videoRepository->findByCategorie($categorie->getUid());
$playlists = $this->playlistRepository->findByCategorie($categorie->getUid());
//Merging arrays then sort it
if ($videos && $playlists)
$result = array_merge($videos, $playlists);
else if ($videos)
$result = $videos;
else if ($playlists)
$result = $playlists;
if ($sort == "chrono")
usort($result, array($this, "sortChrono"));
else if ($sort == "antechrono" || $sort == null)
{
usort($result, array($this, "sortAnteChrono"));
$sort="antechrono";
}
$this->view->assignMultiple(array('categorie' => $categorie, 'list' => $result, 'sort' => $sort));
Вот мое мнение:
Частичный рендеринг показывает объекты, включая изображение, используемое в качестве обложки. Поэтому мне нужно хотя бы это отношение в представлении.

Это прекрасно работает и показывает только элементы из запрошенной категории. К сожалению, у меня огромная проблема с производительностью: я пытался показать категорию, содержащую более 3000 записей, и загрузка занимает около одной минуты. Это немного долго.

Выполняя отладку моей переменной списка, я вижу, что она содержит все записи, даже несмотря на то, что это не должно быть так (это точка нумерации страниц...). Итак, первый вопрос: что-то не так в том, как я разбивал страницы?

Я пытался упростить свои запросы, включив функцию rawQuery ($query->execute (правда)) : у меня производительность намного выше, но я не могу получить ссылку на изображения (на мой взгляд, я получаю 1 или 0, но не uid изображения...). Второй вопрос: есть ли способ решить эту проблему?

Надеюсь, мое описание достаточно понятно. Спасибо за помощь :-)

Подробнее здесь: https://stackoverflow.com/questions/597 ... pagination

Вернуться в «Php»