Новости Joomla

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях

👩‍💻 Человек на GitHub ускорил Joomla в 600 раз на объёме 150к+ материалов в 1700+ категориях. На старте его сайт на Joomla 3 вообще не смог обновиться на Joomla 5. Пришлось делать экспорт/импорт материалов. Проделав всё это он запустил-таки этот объём данных на Joomla 5. Тестовый скрипт грузил 200 материалов из этого объёма всего за 94 секунды ))) А главная страница с категориями грузилась 20 секунд. Добавив индекс для таблицы #__content

CREATE INDEX idx_catid_state ON #__content (catid, state);
он сократил время загрузки категорий до 1 секунды. Затем наш герой решил поковырять SQL-запрос в ArticleModel, который отвечает за выборку материалов. И решил заменить тип JOIN на STRAIGHT_JOIN для категорий.
// ->from($db->quoteName('#__content', 'a'))->from(    $db->quoteName('#__content', 'a')    . ' STRAIGHT_JOIN ' . $db->quoteName('#__categories', 'c')    . ' ON ' . $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))// ->join('LEFT', $db->quoteName('#__categories', 'c'), $db->quoteName('c.id') . ' = ' . $db->quoteName('a.catid'))
Что сократило загрузку 200 материалов из 150к с 94 секунд до 5. К слову сказать, боевой сайт на Joomla 3 крутится на 12CPU 64GB рамы. А все манипуляции с кодом он делает на базовом 1CPU 1GB сервере и замеры скорости даны именно для базового сервера. Но это всё в дискуссии, хотя в идеале должно вылиться в Pull Requests. Мы - Open Source сообщество, где никто никому ничего не должен. Джунгли. Но человек ищет пути оптимизации Joomla и предлагает решения. Если оказать поддержку и предложить помощь хотя бы с тестированием самых разнообразных сценариев, то возможно эти улучшения смогут войти в ядро. Пусть не быстро, пусть через несколько лет, пусть не все, но войдут. Достаточно предложить руку помощи и приложить немного усилий.
Дискуссию на GitHub можно почитать здесь.@joomlafeed#joomla #community #php

0 Пользователей и 1 Гость просматривают эту тему.
  • 14 Ответов
  • 1160 Просмотров
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
В логах часто появляется ошибка (Представление не найдено). Так же эту ошибку можно увидеть вызвав 404-ю _https://lik-astana.kz/imidzhevaya-produktsiya.html25_.
Полагаю что в логах эта ошибка как то связана с ответом 404. Подскажите сталкивался кто то с такой проблемой.

Так же в логах есть вот такие предупреждения:
Спойлер
[свернуть]


*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Представление не найдено что это
« Ответ #1 : 05.01.2018, 11:40:30 »
Проверьте наличие шаблона категории, указанного в настройках категории Вирт.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Представление не найдено что это
« Ответ #2 : 05.01.2018, 12:50:40 »
Система сообщила, что безуспешно пыталась найти файл category/view.html25.php, которого нет. Пропишите в .htaccess условие, чтобы выдавало 404 при попытке переходить на страницы с такими левыми суффиксами, как html25.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Представление не найдено что это
« Ответ #3 : 05.01.2018, 14:49:15 »
Цитировать
Проверьте наличие шаблона категории, указанного в настройках категории Вирт.
вот скрин https://yadi.sk/i/T8WlxEjw3RD5H9

Цитировать
Система сообщила, что безуспешно пыталась найти файл category/view.html25.php, которого нет. Пропишите в .htaccess условие, чтобы выдавало 404 при попытке переходить на страницы с такими левыми суффиксами, как html25.
тут не совсем понял. Как прописать для html25 ведь пользователь может набрать все что угодно. Так же непонятно почему он пытается найти файл  category/view.html25.php
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Представление не найдено что это
« Ответ #4 : 05.01.2018, 15:20:20 »
Может вирус, может проблемы с настройкой 404, ибо рандомные страницы отдают главную.
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Представление не найдено что это
« Ответ #5 : 05.01.2018, 15:47:19 »
Сканировал айболитом не нашел он не чего. Буду копать 404-ю так как она вроде еще с версии 2,5 осталась
вот сам error.php
Спойлер
[свернуть]
« Последнее редактирование: 05.01.2018, 15:54:19 от Stasweb »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Представление не найдено что это
« Ответ #6 : 06.01.2018, 00:32:26 »
Может вирус, может проблемы с настройкой 404, ибо рандомные страницы отдают главную.
Все это тут ни при чем: здесь фатальная ошибка, вызванная плохой обработкой Exception или ее отсутствием.
Как прописать для html25 ведь пользователь может набрать все что угодно.
А кто сказал, что надо только для html25? Можно написать так, чтобы все суффиксы, кроме html, выдавали нормальный 404.
Но, IMHO, вы придумываете себе проблемы. Какой пользователь будет набирать такие ссылки? Максимум, что он может набрать, это ваш домен. Обычные пользователи кликают на ссылки, а более продвинутые - иногда еще и их вставляют копипастом.
Так же непонятно почему он пытается найти файл  category/view.html25.php
Чтобы было понятно, изучите код движка.
« Последнее редактирование: 06.01.2018, 01:33:38 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Представление не найдено что это
« Ответ #7 : 06.01.2018, 01:44:42 »
Все это тут ни при чем: здесь фатальная ошибка, вызванная плохой обработкой Exception или ее отсутствием.
Ну так, а с каких пор 200 ответ сервера является нормальным для фатала? В этом и проявляется, что где-то криво прописано.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Представление не найдено что это
« Ответ #8 : 06.01.2018, 11:15:53 »
Ну так, а с каких пор 200 ответ сервера является нормальным для фатала? В этом и проявляется, что где-то криво прописано.
Криво - согласен, 200 ненормальный - нет. Ошибка-то не серверная, display_errors включена или еще какой-нибудь xdebug, вывод передан браузеру, с чего бы не 200?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Представление не найдено что это
« Ответ #9 : 11.01.2018, 12:02:12 »
Вот моя ссылка которая должна отдать 404-ю _https://goo.gl/cepTyi
По пути /libraries/src/MVC/Controller/BaseController.php в строке 847 лежит код
Код
throw new \Exception(\JText::sprintf('JLIB_APPLICATION_ERROR_VIEW_NOT_FOUND', $name, $type, $prefix), 404);
Вот весь блок с этой строчкой
Спойлер
[свернуть]
Так же если загуглить
Fatal error: Uncaught Exception: Представление не найдено [name, type, prefix] то выдаст кучу сайтов с этой ошибкой.
Я так понимаю проблема у многих и связанна она с самой системой а не с ошибками в коде.
« Последнее редактирование: 11.01.2018, 12:40:54 от Stasweb »
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Представление не найдено что это
« Ответ #10 : 16.01.2018, 12:04:52 »
Вам лучше написать на форум VirtueMart, как временное решение, можно в файле \components\com_virtuemart\controllers\category.php $viewType указывать как 'html'
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Представление не найдено что это
« Ответ #11 : 16.01.2018, 14:14:01 »
Вам лучше написать на форум VirtueMart, как временное решение, можно в файле \components\com_virtuemart\controllers\category.php $viewType указывать как 'html'
Не совсем понял про $viewType. Можно подробнее описать вот category.php
Спойлер
[свернуть]
*

ProtectYourSite

  • Живу я здесь
  • 2368
  • 139 / 4
  • Безопасность вебсайтов
Re: Представление не найдено что это
« Ответ #12 : 16.01.2018, 16:58:15 »
Код
$viewType = $document->getType();
заменить на
Код
$viewType = 'html';
Но повторюсь, это временное решение, по-хорошему надо просить разработчиков исправить логику работы компонента.
*

Stasweb

  • Завсегдатай
  • 1501
  • 24 / 0
Re: Представление не найдено что это
« Ответ #13 : 17.01.2018, 06:23:39 »
Так же получаю ошибку
Спойлер
[свернуть]
*

galll72

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Re: Представление не найдено что это
« Ответ #14 : 13.02.2018, 13:41:07 »
Не совсем в тему.
Ребята подскажите пожалуйста, почему получается так. Создаю меню для VirtueMart 3.2.12 назначаю главной, выбираю тип меню категории, товар не отображается. Если с нее снять метку главная, при этом назначить другое меню главным, то товар появляется. Что то про этот глюк не где не нашел. И еще, как выбрать позицию для товаров, а то сразу под шапкой меню устанавливается, а хотелось чтоб под слайдом. Вроде говорят, что где то в движке надо прописать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Joomla 2.5.28 - VirtueMart - Не найдено изображение

Автор norbertano

Ответов: 0
Просмотров: 851
Последний ответ 31.05.2018, 22:42:53
от norbertano
Представление не найдено [name, type, prefix]: product, html, contentView

Автор kasper9820

Ответов: 0
Просмотров: 1018
Последний ответ 02.05.2018, 21:44:15
от kasper9820
Нужна кнопка Задать вопрос об этом товаре в категории (решение найдено)

Автор Dianis

Ответов: 2
Просмотров: 3751
Последний ответ 25.10.2013, 22:13:41
от Dmitryy