Новости Joomla

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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Плагин OptimizeTables для Joomla 1.6/1.7/2.5
« Ответ #30 : 14.06.2013, 14:59:56 »
Это же получение параметра, а значит и запрос в базу для их чтения. Или $this->params для всех плагинов инициализируются каким-то одним глобальным запросом? Я как-то не копал в эту сторону и не знаю, как там Joomla их подгружает, но мне это кажется нелогичным.
Хы, прикольно. А ты не знал этого? Когда ты взываешь JPluginHelper::importPlugin, выполняется вот такой код:
Код: php
					$className = 'plg' . $plugin->type . $plugin->name;
if (class_exists($className))
{
// Load the plugin from the database.
if (!isset($plugin->params))
{
// Seems like this could just go bye bye completely
$plugin = self::getPlugin($plugin->type, $plugin->name);
}

// Instantiate and register the plugin.
new $className($dispatcher, (array) ($plugin));
}
а в getPlugin, в свою очередь, вызывается метод _import, в котором выборка из базы трех полей folder, element и params.

К слову сказать это одна из самых существенных оптимизаций в Joomla 1.5 - раньше каждый плагин грузил свои параметры раздельно, несмотря на то, что запрос к БД все равно был для получения информации о статусе публикации плагинов. А данная реализация позволила существенно снизить нагрузку на базу. Я удивлен, что ты не в курсе этой истории, мы это много обсуждали.


Либо хранить их в отдельном файле, либо в классе определить как константы: время и период.
Оно раньше в файлах и хранилось, но были проблемы с правами доступа и прочим. Поэтому я придумал эту схему.

В таких случаях наверное лучше писать в близлежащий файл переменную без обращения к базе
Как я писал выше - так оно и было, но были проблемы с правами.

В принципе, можно в плагине вызов функции с оптимизацией делать через кэш, тогда она будет выполняться с периодичностью, равной времени кэширования. Можно пойти дальше, сделать в плагине свои настройки кэширования, и инициализировать кэш с доп. параметрами, тем самым перебросив задачу ограничения периодичности вызов на систему кэширования - она просто не будет вызывать оптимизацию, пока кэш валиден.
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Re: Плагин OptimizeTables для Joomla 1.6/1.7/2.5
« Ответ #31 : 14.06.2013, 15:23:29 »
Хмм, не помню, когда об этом говорили ::) А какой цикл жизни у объекта $plugin в нашем случае? Похоже что onAfterInitialise не обнуляет $plugins?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Плагин OptimizeTables для Joomla 1.6/1.7/2.5
« Ответ #32 : 14.06.2013, 15:25:44 »
Не вижу ничего лучшего чем писать в файл. И какая проблема  с правами закрыли папку, файл от доступа через .htaccess
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Плагин OptimizeTables для Joomla 1.6/1.7/2.5
« Ответ #33 : 14.06.2013, 16:18:53 »
А какой цикл жизни у объекта $plugin в нашем случае?
Я так понимаю до завершения запроса. Там нет никакой привязки группы плагинов к жизненному циклу, поэтому загрузили группу - данные висят в памяти, кто ж знает, на каком событии тот или иной плагин вызовут? Может быть и на onAfterRender...

Не вижу ничего лучшего чем писать в файл.
Ну ты может быть и не видишь, а если тему не стерли - можно поискать, посчитать, сколько было жалоб, что плагину не хватает прав на запись файла... Я же не просто так переделывал логику. Да  зачем файл, если и так проблем быть не должно?

Вот чем столько времени тратить на обсуждение - давно бы уже посмотрели в коде, почему вызовы идут часто. Скорее всего параметры плагина либо не обновляются, либо они кэшируются, и в этом случае надо после обновления кэш почистить.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Плагин LVSpoiler - спойлеры с динамической загрузкой изображений

Автор Arkadiy

Ответов: 449
Просмотров: 93483
Последний ответ 20.04.2024, 21:10:33
от Beer
Multilingual Virtual Keyboard for Joomla 5 [решено]

Автор creative3d

Ответов: 2
Просмотров: 367
Последний ответ 28.01.2024, 12:49:40
от creative3d
News Calendar Joomla 3.0 - html5 - Rus

Автор leo78

Ответов: 26
Просмотров: 13066
Последний ответ 21.11.2023, 18:32:21
от Bommbba
Плагин StopKids для маркировки сайта знаком 18+ для Joomla 1.5-3.x

Автор ecolora

Ответов: 40
Просмотров: 19842
Последний ответ 19.03.2023, 18:55:08
от ecolora
Компонент Commedia и плагин mp3browser для медиа-сайтов

Автор ecolora

Ответов: 557
Просмотров: 118990
Последний ответ 13.03.2023, 00:25:14
от ecolora