Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Здравствуйте! В последнее время столкнулся с проблемой, раньше такого не было. Таблица _session растет невероятно быстро, что приводит к огромной нагрузке на базу данных. Приходится вручную хотя бы раз в сутки заходить в базу данных и чистить таблицу _session. Если этого не делать она набирает за пару суток сумасшедшую нагрузку на базу, а в пиковые дни вообще ложит ее.
Если кто сталкивался с подобным, знает как с этим бороться? Буду благодарен!
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Таблица session грузит базу данных
« Ответ #1 : 10.04.2015, 16:30:16 »
покажите содержимое этой таблицы
интернет-блог: http://websiteprog.ru
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #2 : 10.04.2015, 16:48:27 »
покажите содержимое этой таблицы
Растет именно размер таблицы в мб.
Содержание:
Код

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: ``
--

-- --------------------------------------------------------

--
-- Структура таблицы `_session`
--
-- Создание: Апр 09 2015 г., 15:59
--

DROP TABLE IF EXISTS `_session`;
CREATE TABLE IF NOT EXISTS `_session` (
  `session_id` varchar(200) NOT NULL DEFAULT '',
  `client_id` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `guest` tinyint(4) unsigned DEFAULT '1',
  `time` varchar(14) DEFAULT '',
  `data` mediumtext,
  `userid` int(11) DEFAULT '0',
  `username` varchar(150) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `_session`
--

INSERT INTO `_session` (`session_id`, `client_id`, `guest`, `time`, `data`, `userid`, `username`) VALUES
('01de797a41bc5b854563f45f15979c54', 0, 1, '1428672925', NULL, 0, ''),
('042f037745fd31f01f432bbe7f086e5d', 0, 1, '1428673062', NULL, 0, ''),
('04768b3b2633bb581f7e76b87f07b5af', 0, 1, '1428673190', NULL, 0, ''),
('04d6ffb6a0fe15141b58029457b3b46d', 0, 1, '1428672816', NULL, 0, ''),
('0587708b93bfbb5b1324084791bced94', 0, 1, '1428673186', NULL, 0, ''),
('0c332c904b8d349c5aab75c9525870ff', 0, 1, '1428672929', NULL, 0, ''),
('0cdf967b8457ae0a7c07e38f45df92b4', 0, 1, '1428672917', NULL, 0, ''),
('0de00d6fef56f2561b4d7effdca739ea', 0, 1, '1428673087', NULL, 0, ''),
('105ec98f4af8bd82f9ba4f33070b4d68', 0, 1, '1428673034', NULL, 0, ''),
('10821ccc91c47345061f82bfcbec767b', 0, 1, '1428672991', NULL, 0, ''),
('1157ba2f448e9b3be2504cd76e2badbc', 0, 1, '1428672700', NULL, 0, ''),
('157e821cd6e63064461f9bba445d1199', 0, 1, '1428672790', NULL, 0, ''),
('1708f279c31a8e16b7145f0ee95629cd', 0, 1, '1428672927', NULL, 0, ''),
('184cc3ceffff52dffa2b6440041f086f', 0, 1, '1428673064', NULL, 0, ''),
('186ca442f932fb17e15c05345c11d84b', 0, 1, '1428672627', NULL, 0, ''),
('1885545ff69e14e0b00f50f309597fdc', 0, 1, '1428672792', NULL, 0, ''),
('18a718502d8abf41676010ee21b1c0c0', 0, 1, '1428672683', NULL, 0, ''),
('193e599c507826bad89e6d79d457de95', 0, 1, '1428673155', NULL, 0, ''),
('1dfeb786ccd106b13a6a50d139df5618', 0, 1, '1428672816', NULL, 0, ''),
('1fbe70eb42312350342e9da03e782a50', 0, 1, '1428672805', NULL, 0, ''),
('2023b737e082bce9bc23c19284e0de88', 0, 1, '1428672893', NULL, 0, ''),
('21136be15975bfd981fef19b6dd781db', 0, 1, '1428673150', NULL, 0, ''),
('2461df63dffcc329c07308427193c1ef', 0, 1, '1428672627', NULL, 0, ''),
('25e128e7857f99d2816d4821f7a0cf2e', 0, 1, '1428672847', NULL, 0, ''),
('29d9f299df93f72248464fdf48c3bb90', 0, 1, '1428673213', NULL, 0, ''),
('31205da724ed4ef2dbb339d1b7795f7b', 0, 1, '1428673013', NULL, 0, ''),
('316201bf0de9155252d22dcd38d597c3', 0, 1, '1428673022', NULL, 0, ''),
('35a2aa2a262a8a922c76a66ed8700d24', 0, 1, '1428672892', NULL, 0, ''),
('396aaf1385446a08c1037541c65ebf49', 0, 1, '1428672818', NULL, 0, ''),
('3a262b18b557d5ce747a359c8b0c4974', 0, 1, '1428672670', NULL, 0, ''),
('3af1ff489f9cb7a3fbc4f318d92779b6', 0, 1, '1428673220', NULL, 0, ''),
('3d04d7acd0b378e50e9fe7781735e7a3', 0, 1, '1428673194', NULL, 0, ''),
('3e547368dbfe6b09554bca4267cd52a0', 0, 1, '1428672796', NULL, 0, ''),
('3e60d7ee9984077d135ffcde10742043', 0, 1, '1428672667', NULL, 0, ''),
('3e9021090e00d7f6b6144f4945b10d56', 0, 1, '1428672948', NULL, 0, ''),
('3eaa931aeb1f5ef2462ccaeea0f20320', 0, 1, '1428672796', NULL, 0, ''),
('41c396ac5a2871347c334987f5ac616f', 0, 1, '1428672827', NULL, 0, ''),
('41eaf58453b94eb47045b8afd413246c', 0, 1, '1428673052', NULL, 0, ''),
('424b6e38d678b4375c6d539ad93d0d8d', 0, 1, '1428672957', NULL, 0, ''),
('44702050df5354e82effe8302e6e15b3', 0, 1, '1428673031', NULL, 0, ''),
('45fe6ac4389b1aa47cc77b30a5e15314', 0, 1, '1428672790', NULL, 0, ''),
('4615830551118453591a015ac674a403', 0, 1, '1428672867', NULL, 0, ''),
('492a087abc6f3a435218d1370fd4ef01', 0, 1, '1428672732', NULL, 0, ''),
('495e05fa4a2766e10d3c85e6b5467447', 0, 1, '1428672860', NULL, 0, ''),
('499fb3448268c68f9b3205a51627d4b9', 0, 1, '1428672841', NULL, 0, ''),
('4b09b1c78961be078dd0d0b40e8decc4', 0, 1, '1428672794', NULL, 0, ''),
('4d8496b94935e594b4b9915ed13fd308', 0, 1, '1428673213', NULL, 0, ''),
('500ae2b1e83b0f50152ac220fd1f77ae', 0, 1, '1428672918', NULL, 0, ''),
('50849159925ac6dd562d5809971e6fbd', 0, 1, '1428672675', NULL, 0, ''),
('540095356fe4ade10475f7afcc81aea9', 0, 1, '1428672695', NULL, 0, ''),
('5459a1c2d352d7bf0e601d8a775e5177', 0, 1, '1428673040', NULL, 0, ''),
('553f917733233e6b92561f003b01107a', 0, 1, '1428672788', NULL, 0, ''),
('585f4cb4d975794ac22c6cb59e69e5e0', 0, 1, '1428672664', NULL, 0, ''),
('5916083760ba695a50463cbdf5ef4eff', 0, 1, '1428673017', NULL, 0, ''),
('59bf5f6c6892ac09b8eefe6697173f68', 0, 1, '1428672879', NULL, 0, ''),
('5b672bb5e9a6993da86b9fb5542a674f', 0, 1, '1428673180', NULL, 0, ''),
('5dafa65f135f7863e166393c258007e8', 0, 1, '1428673192', NULL, 0, ''),
('5df03ba0288342011f93541ff416ff1a', 0, 1, '1428672873', NULL, 0, ''),
('5e660a6d37a562ec3b5f5ef7d3a2eca3', 0, 1, '1428672771', NULL, 0, ''),
('5f4846e35eada17a209f18d0b5c818df', 0, 1, '1428672728', NULL, 0, ''),
('60586481635744c062c1e980782c5c3b', 0, 1, '1428673209', NULL, 0, ''),
('609f06f442916395b5e76aa1690d9850', 0, 1, '1428672893', NULL, 0, ''),
('6199341fb73fd0539309d3b4bf28ec73', 0, 1, '1428673123', NULL, 0, ''),
('64fd670ec5c52f049d4cc6ddbba697b6', 0, 1, '1428672754', NULL, 0, ''),
('65275749569c4c5a0bb646ca0cbd1399', 0, 1, '1428673000', NULL, 0, ''),
('6f56ae80f0bb5a0116619506a9fd7733', 0, 1, '1428672628', NULL, 0, ''),
('71f1e2e854b0fb14f2439e80124287c9', 0, 1, '1428673140', NULL, 0, ''),
('74c3878263e54b61aff2d3ed436f9869', 0, 1, '1428672659', NULL, 0, ''),
('7682ddca4fa3fd93cc2307bedd437b96', 0, 1, '1428672967', NULL, 0, ''),
('784918e2e4a5c998c02ad4b1b525ff5e', 0, 1, '1428672848', NULL, 0, ''),
('7a08a9fd9dfb18ac96af0b8ba9a8ad1f', 0, 1, '1428672633', NULL, 0, ''),
('7a0baef734d047cc04239af1446f1f7c', 0, 1, '1428672626', NULL, 0, ''),
('7c0806fe141c6709bcd6997d62bd50fc', 0, 1, '1428672652', NULL, 0, ''),
('7f11be5a7e6dededd13866492c0dcc47', 0, 1, '1428673211', NULL, 0, ''),
('811df5c63d9fe28735d84b1ea405215f', 0, 1, '1428672663', NULL, 0, ''),
('81743bf61d9882c8a27f31d35c65c056', 0, 1, '1428672977', NULL, 0, ''),
('85b521bea9c1829e5462157f762a57a1', 0, 1, '1428672651', NULL, 0, ''),
('88954191cf599a70e2425a6b9d9cd89a', 0, 1, '1428673077', NULL, 0, ''),
('89bbdc0db858ce49e4c3ef008b375897', 0, 1, '1428672773', NULL, 0, ''),
('89fb19de3d18e79c07fbe49b2fac571c', 0, 1, '1428672881', NULL, 0, ''),
('8b4a2fd94d2ef86a8f945c33997073d2', 0, 1, '1428672906', NULL, 0, ''),
('8c1a7279039ddc3197ff86ae6152fe70', 0, 1, '1428673111', NULL, 0, ''),
('8f5abd366f27355725b70e6e2000e488', 0, 1, '1428672864', NULL, 0, ''),
('8fbf6c55b82dd66d42d06f0e7a0c0a24', 0, 1, '1428672788', NULL, 0, ''),
('91f8c6dbff751d2ebe10775f3d3cf9e7', 0, 1, '1428673110', NULL, 0, ''),
('92eb9f6f0cc03f1a13d35c522732ff0d', 0, 1, '1428672809', NULL, 0, ''),
('93c6b346b83de0c410097e3efbe484c1', 0, 1, '1428673098', NULL, 0, ''),
('95c3064ba16384160b20d9aad319d338', 0, 1, '1428672884', NULL, 0, ''),
('9eec36674a96d71c0bab70755f58e15d', 0, 1, '1428673114', NULL, 0, ''),
('9fa9e3b26678b438c31fd22377dfc6f6', 0, 1, '1428672893', NULL, 0, ''),
('a1043e4b7026ff8e59c4c255149baa9b', 0, 1, '1428672841', NULL, 0, ''),
('a159635f0aaf2bbe1132975a7338c264', 0, 1, '1428672812', NULL, 0, ''),
('a34ea0e4eb232d7d692554582b358206', 0, 1, '1428672947', NULL, 0, ''),
('a61c36ccaf6c05507dd437f9c0e53622', 0, 1, '1428672930', NULL, 0, ''),
('a6aa4bd1c23566fe3d36e20aeac78812', 0, 1, '1428673032', NULL, 0, ''),
('a75a2efc105cdfe58dfed56538c03db0', 0, 1, '1428672908', NULL, 0, ''),
('a7d54afa8c8c7b8c28b53f11e2ed165f', 0, 1, '1428672699', NULL, 0, ''),
('a9fb39c89a0ba5f1dc96defe8000d85a', 0, 1, '1428672745', NULL, 0, ''),
('ac3c947cf80220c2fd33a1cec401711e', 0, 1, '1428673194', NULL, 0, ''),
('accf0d9cd192474c4196a417b870ee48', 0, 1, '1428672816', NULL, 0, ''),
('ae06842b66cc6011625ca04cf66ae6e9', 0, 1, '1428673186', NULL, 0, ''),
('b011efd85801defd3565a5217a8431d7', 0, 1, '1428672957', NULL, 0, ''),
('b132b5ebd830f62d87725e7c10096eaa', 0, 1, '1428673129', NULL, 0, ''),
('b2c46b3a59530f904277d488b792efdc', 0, 1, '1428672860', NULL, 0, ''),
('b46222dbfa373bb08aee85e315300e40', 0, 1, '1428672859', NULL, 0, ''),
('b5660f60ca863a5811a47a4e0b30db76', 0, 1, '1428672802', NULL, 0, ''),
('b70e8283261461e04fbd805b1be4abe9', 0, 1, '1428672701', NULL, 0, ''),
('b7a99ca6e1b377ca62f6ec0e42344ae1', 0, 1, '1428672792', NULL, 0, ''),
('ba48b35bd44789632971f1d4fd64b9c0', 0, 1, '1428672949', NULL, 0, ''),
('bb9c4ffc3b032e38447db2bb65a9cecc', 0, 1, '1428673168', NULL, 0, ''),
('bf1d4a28966f03d9aca644036fed75cb', 0, 1, '1428673006', NULL, 0, ''),
('c174ff8debd36458bbf2a60379241338', 0, 1, '1428673089', NULL, 0, ''),
('c3c6edeb6a9a8fac86efa9b968e6cd98', 0, 1, '1428672992', NULL, 0, ''),
('c461c3089939e304f77dfc8fe591cfd0', 0, 1, '1428672885', NULL, 0, ''),
('c572f22aead87f0e4288402184df7243', 0, 1, '1428672638', NULL, 0, ''),
('c5b6e135fc714a0e79f49341f83dab21', 0, 1, '1428672649', NULL, 0, ''),
('c5edb8641251c93dd8f2bef5efe77cbc', 0, 1, '1428673189', NULL, 0, ''),
('c6849902280236a1e4c408a6fb7367d5', 0, 1, '1428672711', NULL, 0, ''),
('c83b0f60ff0522db9149dde6841b919d', 0, 1, '1428673075', NULL, 0, ''),
('c8881d4b10176aa7054676fb8a6cc176', 0, 1, '1428672772', NULL, 0, ''),
('cba50d62d941f622b7b674813a97327b', 0, 1, '1428672863', NULL, 0, ''),
('cc80b1e37f5aaa5530752ecc18cdaaf2', 0, 1, '1428673017', NULL, 0, ''),
('ce06b1cff9d5e78f99a83f9495f4b848', 0, 1, '1428673208', NULL, 0, ''),
('cf96b1d16c3d5f8c70eb7408db834528', 0, 1, '1428672676', NULL, 0, ''),
('d1e6d756146b0bfb07469b621b0bfbdf', 0, 1, '1428672675', NULL, 0, ''),
('d21e0a7fc8df60e1ecd26f2a39dd183f', 0, 1, '1428672722', NULL, 0, ''),
('d25eac6c0890c64331b4ff91fd585837', 0, 1, '1428672663', NULL, 0, ''),
('d3290bf72b8d2f2fa485bc49f863073c', 0, 1, '1428672852', NULL, 0, ''),
('d45fc5fb78ec87ccea3e2d44db9f60f2', 0, 1, '1428672670', NULL, 0, ''),
('d465244f1c43a2223d492ba9057ae28f', 0, 1, '1428673148', NULL, 0, ''),
('d775c6f6f8468311f6bebf1821fbcd85', 0, 1, '1428672650', NULL, 0, ''),
('d9b7985667f595c3cf16fd71472b0cf8', 0, 1, '1428672777', NULL, 0, ''),
('dc2a8e2df2ca662513213265f36027f5', 0, 1, '1428672644', NULL, 0, ''),
('dd943aa70d6e5ac220ce6af8dbc95a60', 0, 1, '1428673183', NULL, 0, ''),
('df6dece9c74c342d58b2856df8d06bcd', 0, 1, '1428673206', NULL, 0, ''),
('e0058c50eceab64445059872d94004ec', 0, 1, '1428673165', NULL, 0, ''),
('e1555203197f8410259c2f9499e57679', 0, 1, '1428672630', NULL, 0, ''),
('e1f3ee7f9b876cd0f0a08656c6e3812b', 0, 1, '1428673158', NULL, 0, ''),
('e1f4c41e625d46f59db6b5cfaeb53177', 0, 1, '1428673040', NULL, 0, ''),
('e3c74905ab1196eecb764e6f403d8251', 0, 1, '1428672814', NULL, 0, ''),
('e695c4ce48cb8d5d2a2adefd68c4e9a1', 0, 1, '1428673100', NULL, 0, ''),
('e74342f40d3ba7dccb4873d2146adb58', 0, 1, '1428672852', NULL, 0, ''),
('e894bfb9619d1c2403fe16c926ed1624', 0, 1, '1428673124', NULL, 0, ''),
('e928fa4ad39002f37a896c8fc410f563', 0, 1, '1428673020', NULL, 0, ''),
('e9a0f8c7fde1c8a98e4a96cf61a48b1b', 0, 1, '1428672944', NULL, 0, ''),
('ea184d577c81c8947096297afbc616df', 0, 1, '1428673139', NULL, 0, ''),
('edf5f5dac574e9e9e5862c5f8d58325f', 0, 1, '1428673091', NULL, 0, ''),
('ef9c520dc9860928695cdd4c73a02243', 0, 1, '1428673038', NULL, 0, ''),
('efdbae076d87cc7452148972ddbc273b', 0, 1, '1428672785', NULL, 0, ''),
('f1aaae6664ccfc58a50d80223cfdbfc4', 0, 1, '1428672848', NULL, 0, ''),
('f37bac02afb844dcc4510c1d37655f4b', 0, 1, '1428673043', NULL, 0, ''),
('f687f5342a91d90cb0b30063db678704', 0, 1, '1428672645', NULL, 0, ''),
('f743422242ac6c631becde1ccf1cf7d5', 0, 1, '1428672794', NULL, 0, ''),
('f8a218333ba85c2225f1147d096114ad', 0, 1, '1428673157', NULL, 0, ''),
('fb9f0bd3ec0b887baeee828acdc49a2a', 0, 1, '1428673164', NULL, 0, ''),
('fba41c99a6ba9cc0d0c2ba34b9f222dc', 0, 1, '1428672676', NULL, 0, ''),
('fbb0b17661f88c038ea4d168520edb23', 0, 1, '1428672798', NULL, 0, '');

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `_session`
--
ALTER TABLE `_session`
 ADD PRIMARY KEY (`session_id`), ADD KEY `userid` (`userid`), ADD KEY `time` (`time`);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #3 : 10.04.2015, 16:54:14 »
Обработчик сессий настроен Memcache. Однако, Joomla все равно продолжает прописывать в базу
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Таблица session грузит базу данных
« Ответ #4 : 10.04.2015, 16:55:39 »
Посмотрите логи сервера, мож кто стучится к вам некрасиво?
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #5 : 10.04.2015, 17:11:42 »
Посмотрите логи сервера, мож кто стучится к вам некрасиво?
Смотрю время от времени. Ничего подозрительного пока не видел.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Таблица session грузит базу данных
« Ответ #6 : 10.04.2015, 17:44:52 »
Сессия гостевая и data = NULL. Это странно. Возможно какое то расширение, плагин косячит. Еще посмотрите настройки сессионных coockies в php.ini. Возможно время жизни слишком короткое. Вобще интересно посмотреть на вывод phpInfo(). А может к вам действительно кто то долбится, неплохо бы проанализировать количество запросов, заголовки.
« Последнее редактирование: 10.04.2015, 17:51:53 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #7 : 10.04.2015, 17:59:40 »
Сессия гостевая и data = NULL. Это странно. Возможно какое то расширение, плагин косячит. Еще посмотрите настройки сессионных coockies в php.ini. Возможно время жизни слишком короткое. Вобще интересно посмотреть на вывод phpInfo(). А может к вам действительно кто то долбится, неплохо бы проанализировать количество запросов, заголовки.
Скинул ссылку phpInfo на Gmail почту
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #8 : 11.04.2015, 02:18:28 »
 Увеличил немного время жизни сессий в админке. Не хочется пока зарекаться, но кажется проблема решена. Надо еще понаблюдать.
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #9 : 16.04.2015, 10:25:45 »
Ничего не решено. Как росла большими темпами таблица session и создавать нагрузку, так и продолжает.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
Re: Таблица session грузит базу данных
« Ответ #10 : 16.04.2015, 11:03:57 »
Обработчик сессий настроен Memcache. Однако, Joomla все равно продолжает прописывать в базу
Обработчик сессий * - Нет ?
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #11 : 16.04.2015, 12:48:14 »
Обработчик сессий * - Нет ?
На данный момент Memcache. Но пробивал и без обработчика.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Таблица session грузит базу данных
« Ответ #12 : 16.04.2015, 13:39:55 »
Не понял. Если таблица растет, то разве не база данных обработчик?  Можете попробовать залогировать запросы  в \libraries\joomla\session\storage\database.php . Ищите там метод public function write($id, $data)   { , добавьте туда:
Код: php
jimport('joomla.log.log');
JLog::addLogger(
        array(
     'text_file' => 'session.clientinfo.php',
  'text_entry_format' => '{DATE} {TIME} {CLIENTIP} {MESSAGE}'
),      
        JLog::ALL,      
array('info')
);
$msg = isset($_SERVER["HTTP_REFERER"])? 'referer: '.$_SERVER["HTTP_REFERER"] : '';
$msg .= isset($_SERVER["HTTP_USER_AGENT"])  ? ' user_agent: '.$_SERVER["HTTP_USER_AGENT"] : '';
JLog::add($msg, JLog::INFO, 'info');

То создаст файл sesssion.clientinfo.php в папке с логами(/log) в который будут записываться данные запросов. Будет видно по крайней мере если вас кто то долбит запросами.
« Последнее редактирование: 16.04.2015, 13:51:31 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #13 : 16.04.2015, 14:28:50 »
Не понял. Если таблица растет, то разве не база данных обработчик?  Можете попробовать залогировать запросы  в \libraries\joomla\session\storage\database.php . Ищите там метод public function write($id, $data)   { , добавьте туда:
Код: php
jimport('joomla.log.log');
JLog::addLogger(
        array(
     'text_file' => 'session.clientinfo.php',
   'text_entry_format' => '{DATE} {TIME} {CLIENTIP} {MESSAGE}'
),     
        JLog::ALL,       
array('info')
);
$msg = isset($_SERVER["HTTP_REFERER"])? 'referer: '.$_SERVER["HTTP_REFERER"] : '';
$msg .= isset($_SERVER["HTTP_USER_AGENT"])  ? ' user_agent: '.$_SERVER["HTTP_USER_AGENT"] : '';
JLog::add($msg, JLog::INFO, 'info');

То создаст файл sesssion.clientinfo.php в папке с логами(/log) в который будут записываться данные запросов. Будет видно по крайней мере если вас кто то долбит запросами.
Файл sesssion.clientinfo.php не создается! Вообще у меня Memcache и файл не создается, однако, таблица базы данных session продолжает рости.
Файл  sesssion.clientinfo.php создался когда я выбрал обработчика - базу данных.
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #14 : 16.04.2015, 14:40:56 »
Файл sesssion.clientinfo.php не создается! Вообще у меня Memcache и файл не создается, однако, таблица базы данных session продолжает рости.
Файл  sesssion.clientinfo.php создался когда я выбрал обработчика - базу данных.

Логи я уже проверял, ничего в них не обнаружил странного.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Таблица session грузит базу данных
« Ответ #15 : 16.04.2015, 14:51:26 »
Покажите кусок лога. Если все нормально то значит это программный глюк. Отключайте все лишние плагины, модули, расширения
« Последнее редактирование: 16.04.2015, 14:55:14 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #16 : 16.04.2015, 15:11:42 »
Перебирал все плагины и компоненты, проблема не в них.
« Последнее редактирование: 16.04.2015, 23:35:19 от Kitnorm »
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #17 : 16.04.2015, 23:36:05 »
При настроенном memcache, все равно продолжается общение с таблицей session.
Может есть способ полностью отключить таблицу session от сайта?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Таблица session грузит базу данных
« Ответ #18 : 17.04.2015, 00:45:37 »
При настроенном memcache, все равно продолжается общение с таблицей session.

Стопудово какой то скрипт или расширение туда пишет. Попробуйте установить и настроить Joomla с нуля. Можно настроить сборщик мусора или скрипт который будет чистить таблицу но это не решение. Кстатии, если стоит в качестве хранилища memcache то сборщик мусора как раз не будет подчищать старые сессии из базы.  
« Последнее редактирование: 17.04.2015, 00:50:28 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #19 : 17.04.2015, 01:31:41 »
Стопудово какой то скрипт или расширение туда пишет. Попробуйте установить и настроить Joomla с нуля. Можно настроить сборщик мусора или скрипт который будет чистить таблицу но это не решение. Кстатии, если стоит в качестве хранилища memcache то сборщик мусора как раз не будет подчищать старые сессии из базы.  
Установил чистую Joomla для теста. Настроил Memcache. Записи в session, так или иначе, продолжают идти.
« Последнее редактирование: 17.04.2015, 01:58:27 от Kitnorm »
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Таблица session грузит базу данных
« Ответ #20 : 17.04.2015, 08:34:47 »
Я тут с коллегами в скайпе пообщался, мысль промелькнула, может J пишет в базу при недостаточном объеме памяти под мемкэш?
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Таблица session грузит базу данных
« Ответ #21 : 17.04.2015, 10:36:40 »
Цитировать
может J пишет в базу при недостаточном объеме памяти под мемкэш?
По идее должно по умолчанию достаточно быть - в районе 64МБ.

ТС, вы сами memcashed ставили, уверены, что все правильно сделали? Если на вашем сервере вернуть обработчик на базу данных, что появится в поле data, NULL по-прежнему?

Когда падала БД, лог медленных запросов MySQL содержал кучу записей, имеющих отношение к таблице сессий?



*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #22 : 17.04.2015, 11:31:58 »
По идее должно по умолчанию достаточно быть - в районе 64МБ.

ТС, вы сами memcashed ставили, уверены, что все правильно сделали? Если на вашем сервере вернуть обработчик на базу данных, что появится в поле data, NULL по-прежнему?

Когда падала БД, лог медленных запросов MySQL содержал кучу записей, имеющих отношение к таблице сессий?

Выделено - 32 мб

Если вернуть обработчик - базу данных, то база разрастается в мб куда более быстрыми темпами (мягко сказано в разы). Вот ее содержание:
Код

DROP TABLE IF EXISTS `_session`;
CREATE TABLE IF NOT EXISTS `_session` (
  `session_id` varchar(200) NOT NULL DEFAULT '',
  `client_id` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `guest` tinyint(4) unsigned DEFAULT '1',
  `time` varchar(14) DEFAULT '',
  `data` mediumtext,
  `userid` int(11) DEFAULT '0',
  `username` varchar(150) DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Дамп данных таблицы `_session`
--

INSERT INTO `_session` (`session_id`, `client_id`, `guest`, `time`, `data`, `userid`, `username`) VALUES
('031c63f6f1d2b755f3f111934f74f1e6', 0, 1, '1429258519', '__default|a:8:{s:15:"session.counter";i:1;s:19:"session.timer.start";i:1429258518;s:18:"session.timer.last";i:1429258518;s:17:"session.timer.now";i:1429258518;s:22:"session.client.browser";s:134:"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 YaBrowser/15.2.2214.3645 Safari/537.36";s:8:"registry";O:24:"Joomla\\Registry\\Registry":2:{s:7:"\\0\\0\\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:4:"user";O:5:"JUser":26:{s:9:"\\0\\0\\0isRoot";N;s:2:"id";i:0;s:4:"name";N;s:8:"username";N;s:5:"email";N;s:8:"password";N;s:14:"password_clear";s:0:"";s:5:"block";N;s:9:"sendEmail";i:0;s:12:"registerDate";N;s:13:"lastvisitDate";N;s:10:"activation";N;s:6:"params";N;s:6:"groups";a:1:{i:0;s:1:"1";}s:5:"guest";i:1;s:13:"lastResetTime";N;s:10:"resetCount";N;s:12:"requireReset";N;s:10:"\\0\\0\\0_params";O:24:"Joomla\\Registry\\Registry":2:{s:7:"\\0\\0\\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:14:"\\0\\0\\0_authGroups";N;s:14:"\\0\\0\\0_authLevels";a:2:{i:0;i:1;i:1;i:1;}s:15:"\\0\\0\\0_authActions";N;s:12:"\\0\\0\\0_errorMsg";N;s:13:"\\0\\0\\0userHelper";O:18:"JUserWrapperHelper":0:{}s:10:"\\0\\0\\0_errors";a:0:{}s:3:"aid";i:0;}s:13:"session.token";s:32:"4a0ec60184cb974e28dbfe3fc257ede3";}', 0, ''),
('0768af522c36ab572254cfe83e2f0b13', 0, 1, '1429258537', '__default|a:8:{s:15:"session.counter";i:1;s:19:"session.timer.start";i:1429258537;s:18:"session.timer.last";i:1429258537;s:17:"session.timer.now";i:1429258537;s:22:"session.client.browser";s:64:"Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)";s:8:"registry";O:24:"Joomla\\Registry\\Registry":2:{s:7:"\\0\\0\\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:4:"user";O:5:"JUser":26:{s:9:"\\0\\0\\0isRoot";N;s:2:"id";i:0;s:4:"name";N;s:8:"username";N;s:5:"email";N;s:8:"password";N;s:14:"password_clear";s:0:"";s:5:"block";N;s:9:"sendEmail";i:0;s:12:"registerDate";N;s:13:"lastvisitDate";N;s:10:"activation";N;s:6:"params";N;s:6:"groups";a:1:{i:0;s:1:"1";}s:5:"guest";i:1;s:13:"lastResetTime";N;s:10:"resetCount";N;s:12:"requireReset";N;s:10:"\\0\\0\\0_params";O:24:"Joomla\\Registry\\Registry":2:{s:7:"\\0\\0\\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:14:"\\0\\0\\0_authGroups";N;s:14:"\\0\\0\\0_authLevels";a:2:{i:0;i:1;i:1;i:1;}s:15:"\\0\\0\\0_authActions";N;s:12:"\\0\\0\\0_errorMsg";N;s:13:"\\0\\0\\0userHelper";O:18:"JUserWrapperHelper":0:{}s:10:"\\0\\0\\0_errors";a:0:{}s:3:"aid";i:0;}s:13:"session.token";s:32:"7110f845aee57359fcd3c0858fb7b0f8";}', 0, ''),
('08197499cec6d7a048d3d9493bae0dad', 0, 1, '1429258529', '__default|a:8:{s:15:"session.counter";i:1;s:19:"session.timer.start";i:1429258529;s:18:"session.timer.last";i:1429258529;s:17:"session.timer.now";i:1429258529;s:22:"session.client.browser";s:68:"Mozilla/5.0 (compatible; YandexMetrika/3.0; +http://yandex.com/bots)";s:8:"registry";O:24:"Joomla\\Registry\\Registry":2:{s:7:"\\0\\0\\0data";O:8:"stdClass":0:{}s:9:"separator";s:1:".";}s:4:"user";O:5:"JUser":26:{s:9:"\\0\\0

Чем больше размер таблицы Session, тем больше я вижу нагрузку на базу данных в графике статистики панели хостера (статистика почасовая). Когда первый раз упала база, хостер жаловался на таблицу Session, и он тогда сам предложил мне Memcache и сам его настроил. После с удивлением сказал, что Joomla не подхватывает корректно новые настройки.

В любом случае Memcache работает - это можно видеть по содержимому таблиц при смене обработчика.

Если своевременно чистить Session (не давать ей рости), то нагрузки не будет, но если этого не делать, нагрузка увеличивается.
« Последнее редактирование: 17.04.2015, 11:46:48 от Kitnorm »
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Таблица session грузит базу данных
« Ответ #23 : 17.04.2015, 11:48:25 »
когда таблица растет, как у вас, судя по выборке, база конечно начнет тормозить. и тогда по логу MySQL можно попытаться по содержимому запросов выяснить, что именно плодит сессии в таблице.

вы в configuration.php добавляли настройки memcache для обработки сессий?
« Последнее редактирование: 17.04.2015, 11:56:02 от capricorn »
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #24 : 17.04.2015, 11:57:09 »
когда таблица растет, как у вас, судя по выборке, база конечно начнет тормозить. и тогда по логу MySQL можно попытаться по содержимому запросов выяснить, что именно плодит сессии в таблице.

вы в configuration.php добавляли настройки memcache для обработки сессий?
Нет! Настроил из панели Joomla.

public $session_handler = 'memcache';
public $session_memcache_server_host = 'localhost';
public $session_memcache_server_port = '11211';
public $session_memcached_server_host = 'localhost';
public $session_memcached_server_port = '11211';
*

capricorn

  • Завсегдатай
  • 1949
  • 118 / 3
Re: Таблица session грузит базу данных
« Ответ #25 : 17.04.2015, 12:32:16 »
вроде нормально, если точно memcache  а не memcached.
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Таблица session грузит базу данных
« Ответ #26 : 17.04.2015, 14:51:30 »
Если вернуть обработчик - базу данных, то база разрастается в мб куда более быстрыми темпами (мягко сказано в разы).

Зато будет работать сборщик мусора. Его только настроить надо правильно. Ваши настройки в php.ini были примерно такие:

session.gc_probability=1
session.gc_divisor=100
session.gc_maxlifetime=28000


Вероятность срабатывания сборщика расчитывается по формуле session.gc_probability/session.gc_divisor (тоесть в вашем случае 1/100 что означает что он будет срабатывать при создании сессии с вероятностью 1 из 100 случаев) Сборщик должен подчищать сессии, которые старше session.gc_maxlifetime секунд (в вашем случае это сессии хранящиеся больше чем 7 с чем то часов). Попробуйте задать настройки:

session.gc_probability=50
session.gc_divisor=100
session.gc_maxlifetime=360


Это увеличит вероятность срабатывания сборщика до 50% и он будет подчищать сессии которые хранятся больше часа. Потом можете настроить его более тонко. Если хостер не позволяет изменять настройки php.ini, то сборщик можно настроить и скриптом.

Ну а вобще это странно что за семь-восемь часов создается столько сессий что переполняется таблица .Что-то тут не чисто
« Последнее редактирование: 17.04.2015, 15:05:28 от zomby6888 »
интернет-блог: http://websiteprog.ru
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Таблица session грузит базу данных
« Ответ #27 : 17.04.2015, 15:05:07 »
zomby6888, это где прописывается?
*

zomby6888

  • Завсегдатай
  • 1473
  • 171 / 3
Re: Таблица session грузит базу данных
« Ответ #28 : 17.04.2015, 15:08:33 »
Это настройки php.ini. Но их  можно задавать и через ini_set() функцию в скрипте.  http://php.net/manual/ru/session.configuration.php#ini.session.gc-probability
интернет-блог: http://websiteprog.ru
*

Kitnorm

  • Захожу иногда
  • 77
  • 0 / 0
Re: Таблица session грузит базу данных
« Ответ #29 : 17.04.2015, 16:38:34 »
Это настройки php.ini. Но их  можно задавать и через ini_set() функцию в скрипте.  http://php.net/manual/ru/session.configuration.php#ini.session.gc-probability
Настроил через .htaccess. Понаблюдаю, отпишусь!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 937
Последний ответ 05.02.2024, 11:45:36
от web1
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 1
Просмотров: 615
Последний ответ 29.03.2023, 16:47:54
от arma
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 0
Просмотров: 517
Последний ответ 29.03.2023, 01:15:03
от Vlad1323
Базы данных

Автор rezchik

Ответов: 7
Просмотров: 737
Последний ответ 16.02.2023, 22:59:29
от rezchik
Error: Failed to start application: Error starting the session

Автор Андрей Нестеров

Ответов: 13
Просмотров: 6709
Последний ответ 15.09.2022, 10:30:52
от x1