Новости 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 Гость просматривают эту тему.
  • 10 Ответов
  • 2112 Просмотров
*

psevdo

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Здравствуйте..Joomla изучаю недавно,сейчас учусь писать свои расширения. Прочитал где то здесь што многие расширения joomla имеют уязвимости..Так вот собственно вопрос: каких правил нужно придерживаться, что бы писать расширения грамотно (без программных ошибок, приводящих к уязвимостям)..
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Безопастность расширений joomla
« Ответ #1 : 04.05.2009, 19:51:48 »
по сути правила всего 2-а:
1. Все входящие (и не только) данные проверяй (т.е. пришёл к тебе идентификатор записи - проверь права например на изменение записи в своём расширении, проверь группу к какой относится пользователь и т.д. и т.п.) и вытекающее из второго правила - тебе вместо числа может придти строка - для SQL-инъекции... так-что правило 2:
2. При каждом удобном случае все переменные приводи к типу, в котором они должны быть  и перед ипользованием переменной обнуляй её по возможности, т.е. например $id = inval($id) или в этом духе.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Безопастность расширений joomla
« Ответ #2 : 04.05.2009, 20:53:21 »
3. не брать данные напрямую из GET/POST, а только через JRequest :)
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Безопастность расширений joomla
« Ответ #4 : 04.05.2009, 21:11:44 »
так то же не для тебя рекомендация ;D
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

psevdo

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Re: Безопастность расширений joomla
« Ответ #5 : 04.05.2009, 21:17:07 »
3. не брать данные напрямую из GET/POST, а только через JRequest :)

а это как? пример можно?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Безопастность расширений joomla
« Ответ #6 : 04.05.2009, 21:18:30 »
а это как? пример можно?
$Itemid
	
JRequest::getInt'Itemid'1'get' );
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Безопастность расширений joomla
« Ответ #7 : 04.05.2009, 21:26:01 »
ещё можешь напороться на то что Joomla автоматом вырезает все HTML теги из визуальных редакторов, и вообще кастрирует по-умолчанию всё "лишнее", обходится это примерно так:

Код
$row->desc = JRequest::getVar( 'desc', '', 'post', 'string', JREQUEST_ALLOWRAW );
$filter = new JFilterInput( array(), array(), 1, 1 );
$row->desc = $filter->clean( $row->desc );
$row->desc - поле записи таблицы, с данными из редактора.
код разрешает любые данные в поле передавать. (для Front-end'а не рекомендуется)
*

psevdo

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Re: Безопастность расширений joomla
« Ответ #8 : 04.05.2009, 21:28:04 »
$Itemid
	
JRequest::getInt'Itemid'1'get' );


а по-подробнее можно?)))
было бы класно написать код формы и обработчик формы (action="")...а то я че то не знаю как в джумле формы обрабатывать)
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Безопастность расширений joomla
« Ответ #9 : 04.05.2009, 22:12:57 »
а по-подробнее можно?)))
было бы класно написать код формы и обработчик формы (action="")...а то я че то не знаю как в джумле формы обрабатывать)
а на тебе простейший компонент\болванку под 1.5 без MVC зато с формой из одного поля :)
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

psevdo

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Re: Безопастность расширений joomla
« Ответ #10 : 06.05.2009, 18:34:13 »
А кто какими приемами еще пользуется?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Валидация форм средствами Joomla

Автор VETERINAR

Ответов: 29
Просмотров: 48816
Последний ответ 09.10.2013, 15:14:44
от digitalheart
Как написать системный плагин для Joomla 1.5

Автор Sergey2

Ответов: 2
Просмотров: 38694
Последний ответ 23.06.2013, 15:28:38
от l-key
Плагин рейтинга чего угодно для Joomla 1.5

Автор Obmor

Ответов: 54
Просмотров: 31401
Последний ответ 18.12.2012, 15:01:55
от Raimonds
Как вы "въехали" в создание расширений?

Автор aanvale

Ответов: 4
Просмотров: 2682
Последний ответ 13.10.2012, 21:44:25
от passer
Модуля кнопка с кодом для Joomla 1.5 или Наш баннер,

Автор leo78

Ответов: 12
Просмотров: 8049
Последний ответ 19.12.2011, 00:35:25
от leo78