Комплексный компонент служит для организации целого раздела сайта (форум, каталог и т.п.). Для вывода данных он подключает обычные компоненты. То есть по сути он является контроллером (менеджером) простых компонентов. Комплексный компонент определяет на основании HTTP запроса страницу, которую требуется вывести посетителю, и подключает шаблон этой страницы. Подробности по отличию комплексного компонента от обычного есть в сообщении Комплексные компоненты
В файле .parameters.php содержится описание входных параметров компонента. Это описание применяется для работы с компонентом из среды БУС (например, в визуальном редакторе), а так же при работе в режиме редактирования сайта. При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и файл .parameters.php не подключается.
В файле .description.php содержится описание компонента. Это описание применяется для работы с компонентом из среды БУС (например, в визуальном редакторе), а так же при работе в режиме редактирования сайта. При работе самого компонента (при обращении к странице, на которой расположен компонент) описание не используется и файл .description.php не подключается.
Обычные (простые, одностраничные) компоненты создают какую-либо область на одной конкретной странице. Например, компонент показа новости по ее коду создает на одной конкретной странице (той, где он размещен) область, в которой показывает заголовок, текст и прочие параметры новости.
Комплексные (сложные, многостраничные) компоненты - это компоненты, которые создают разделы сайта. Например, компонент каталога создает на сайте весь раздел каталога: и список каталогов, и список групп, и страницы товаров. То есть комплексный компонент состоит из набора страниц. Комплексные компоненты строятся на основе обычных компонентов.
$arParams - это предопределенная для компонента переменная, представляющая собой массив входных параметров компонента. Ключами в этом массиве являются названия параметров, а значениями - их значения. Перед подключением компонента ко всем значениям параметров применяется функция htmlspecialcharsEx.
Для ускорения обработки запроса клиента и уменьшения нагрузки на сервер динамические компоненты должны использовать кеширование. Кешировать как правило необходимо ту информацию, которая не зависит от конкретного обратившегося человека. Например, список новостей сайта идентичен для всех посетителей. Поэтому нет смысла выбирать данные каждый раз из базы. Время кеширования зависит в основном от частоты ввода новых новостей. Иногда может иметь смысл и кеширование зависящей от конкретного посетителя информации.
В API компонентов 2.0 были внесены некоторые изменения. О том, что такие изменения возможны, предупреждало описание обновления main 5.1.7. Кроме того появились новые возможности.
Изменения внесены следующие:
1. Переименован главный файл компонентов. Раньше он назывался index.php, теперь он должен называться component.php. Переименован главный файл шаблона (для шаблонов, которые лежат в папке). Раньше он назывался index.php, теперь он должен называться template.php. Это сделано исключительно для удобства редактирования файлов в разных редакторах.
На днях получили еще одно приятное известие об открытых проектах на Битрикс. www.pcmag.ru 2.0: журнал PC Magazine/RE объявляет о запуске новой версии сайта www.pcmag.ru Прекрасная работа разработчиков, отличная скорость работы сайта. Поздравляю с открытием!
О чем принципиально хочется сказать, помимо улучшений и дополнений.
Веб-формы - это, без сомнения, очень спрашиваемая и часто используемая часть функционала на сайтах. Организовать семинар, принять резюме у кандидатов, собрать заявки партнеров на сувениры... в общем, массу примеров можно привести.
На сегодняшний момент, мы представляли вполне рабочий и надежный механизм, который в упрощенном или расширенном режиме позволял создать новую веб-форму, определить список и типы запрашиваемых данных и вывести форму в стандартном варианте на страницу через компоненты.
Но, начиная с этого релиза, мы представляем еще и визуальный режим редактирования веб-формы. Фактически, в HTML редакторе, в визуальном режиме вы можете определить внешний вид формы, правильно расставить вопросы и названия, фактически сверстать веб-форму так, как вам необходимо и опубликовать ее!
Мы сделали небольшой ролик на тему визуальльного создания веб-форм, который позволит вам лучше представить, что это такое и как это будет работать.
Пока это первая версия визуализации Очень интересные возможности запланированы в дальнейшем. И тем не менее, данные режим уже позволяет действительно непрограммистам создать и опубликовать веб-форму в том виде, в каком это необходимо для данного сайта.
Более подробный рассказ про веб-форму мы сделаем когда завершим работы и переведем модуль в релиз
Практическая работа на нескольких десятках проектов в новогодние праздники и две недели после показала отличные результаты!
Вот комментарий Олега Евсюкова, руководителя проекта Калининград.Ру http://www.kaliningrad.ru/ , нашего вечного оппонента по вопросам статистики:
"Серьезно выросла производительность, заметно даже без проведения тестов. Исчезло локирование (блокирование). Статистика не отбирает ресурсы даже при очень высокой посещаемости в часы пик."
Кстати, мы у себя нагрузочное тестирование, отладку и оптимизацию проводили на очень больших объемах данных. И именно адекватности работы при накоплении больших объемов данных и снятию проблем при массовой конкурентной нагрузке мы уделяли особенное внимание.
Некоторые важные положения прошлого анонса:
=========== Производительность модуля статистики улучшена почти в два раза!
Модуль значительно переработан внутри. Очень сильно улучшена работа агентов по чистке. Раньше именно на этом происходили проблемы с очисткой данных. Значительно ускорен сбор данных по всем отчетам и значительно снята зависимость времени исполнения от объемов данных. Заметно уменьшено число запросов и каждый запрос проверен самым тщательным образом, оптимизирован и согласован с индексами. Так же реализована поддержка PHP 5 (поддержка autoload) для модуля статистики.
Обратите внимание, добавлен новый параметр "Индексные страницы разделов", позволяющий избежать дублирования страниц в отчетах (например, / и /index.php) Этот параметр не будет заполнен у вас после установки обновление. Мы у себя на сайте прописали index.php, index.html
При работе с модулем ваше внимание будет обязательно обращено на необходимость создания индексов. Это долгая процедура и может занять несколько минут или даже десятков минут, если у вас очень много данных! Все запросы будут вам представлены в текстовом виде и вы можете при необходимости выполнить их не через продукт, а через SQL запросы к MySQL, Oracle, MSSQL. Создание индексов обязательно для обеспечения производительности, но выполнить запросы во время обновления было нереально.
Исправлен ряд ошибок в работе статистики. В частности, исправлена ошибка, о которой писали в закрытом форуме с PHP функцией crc32 для 64-х битных платформ.
===================
Да, обратите внимание. Если у вас большая посещаемость или много накопленных данных, или загруженный хостинг и база данных, лучше установку обновления и особенно создание индексов выполнить в вечернее время, когда ваш проект и хостер испытывает наименьшие нагрузки.
Как-то неожиданно возникла инициатива. Мой коллега, Игорь Дейч, спросил, буду ли я сдавать на подарки для детского дома? Да, сказал я, сдал и сдал еще от фирмы Так спонтанно сотрудники нашей компании и еще нескольких компаний собрали денег. Я даже не знаю всех, кто сдавал, но собрали прилично. Спасибо всем!
Сегодня с ребятами купили большой телевизор и домашний кинотеатр, отвезли и настроили в детский дом "Надежда" в балтийском районе г. Калининграда. Запустили детям "Король Лев", выдали пачку мультиков и оставили их с праздником.
Если честно, мы порадовались, как живут дети, замечательные воспитатели, уютно, тепло. Но старый телевизор и еле живущий видеомагнитофон заменять было необходимо.
Странно, но я думал, что перед Новым годом в детских домах масса людей, подарков и поздравлений от фирм. Но оказалось это не так!
Это не так дорого и не так сложно. Попробуйте сами. Может и не всегда и не всем нужно, но иногда стоит...
Многие разработчики партнеров захотели на выходных заняться уже подготовкой своих компонент и интеграцией со Smarty. Только должен напомнить, что в API компонент 2.0 возможны незначительные изменения, так как релиз предварительный.
Документация по компонентам 2.0 опубликована на сайте: http://www.bitrixsoft.ru/download/components2.zip В поставке есть несколько примеров. Визуальная поддержка вторым компонентам еще не реализована и будет выпущена в начале следующего года.
Добавлены давно ожидаемые свойства: * html/текст (с визуальным редактором) * путь к файлу (с диалогом выбора файла) * привязка к пользователю Планируется к выпуску еще несколько свойств, но уже в новом году.
Производительность только модуля статистики улучшена почти в два раза!
Модуль значительно переработан внутри. Очень сильно улучшена работа агентов по чистке. Раньше именно на этом происходили проблемы с очисткой данных. Значительно ускорен сбор данных по всем отчетам и значительно снята зависимость времени исполнения от объемов данных. Заметно уменьшено число запросов и каждый запрос проверен самым тщательным образом, оптимизирован и согласован с индексами. Так же реализована поддержка PHP 5 (поддержка autoload) для модуля статистики.
Обратите внимание, добавлен новый параметр "Индексные страницы разделов", позволяющий избежать дублирования страниц в отчетах (например, / и /index.php) Этот параметр не будет заполнен у вас после установки обновление. Мы у себя на сайте прописали index.php, index.html
При работе с модулем ваше внимание будет обязательно обращено на необходимость создания индексов. Это долгая процедура и может занять несколько минут или даже десятков минут, если у вас очень много данных! Все запросы будут вам представлены в текстовом виде и вы можете при необходимости выполнить их не через продукт, а через SQL запросы к MySQL, Oracle, MSSQL. Создание индексов обязательно для обеспечения производительности, но выполнить запросы во время обновления было нереально.
Исправлен ряд ошибок в работе статистики. В частности, исправлена ошибка, о которой писали в закрытом форуме с PHP функцией crc32 для 64-х битных платформ.
Вышло обновление форумов 5.1.5, которое в основном улучшает интерфейс и корректирует небольшие ошибки.
14 декабря прошел партнерский семинар нашей компании. Огромное спасибо всем, кто приехал и принял участие в этом мероприятии. Всего на семинаре присутствовало 180 человек.
Как мы и обещали, это был технологический семинар. Мне кажется, в первых четырех докладах от нашей компании удалось детально и подробно рассказать о проделанной работе по выпуску 5.1 и о ближайших планах по выпуску версии 6.0.
Огромный интерес вызвала презентация Алексея Кирсанова по компонентам 2.0 В результате обсуждены даже было принято решение выпустить поддержку в ядре для новых компонент с несколькими примерами до завершения работы над визуальными инструментами, чтобы партнеры получили возможность приступить к изучению и подготовке своих компонент в новых проектах как можно раньше. (и как выяснили на семинаре, чтобы людям было чем заняться на новогодних праздниках )
С большим интересом все слушали Антона Титкова из компании "Консультанты ТАГО" по юридическим вопросам. Жаль, нет презентации. Но надеюсь, мы в скором времени представим планируемые для публикации комплекты договоров для партнеров.
Много было вопросов по партнерской программе. Но надеюсь, все вопросы удалось разрешить.
Если вопросы будут, вы всегда можете уточнить их в форуме или у нас по телефонам.
Очень приятно было видеть, что доклады выступили только катализатором процесса обсуждения и в перерывах и на фуршете все активно общались друг с другом, решали вопросы, заключали союзы и планировали новые проекты.
Очень интересно было нашим разработчикам пообщаться с партнерами, услышать их пожелания, мысли и планы. Уже вечером попивая чай Максим и Алексей выписывали какие-то идеи, которые планируют реализовать в продукте в новых версиях...
Мы по настоящему вдохновлены сильнейшим положительным настроем, который исходит от наших партнеров и клиентов! Ваши замечательные отзывы и добрые слова в наш адрес, конструктивность в обсуждении вопросов, вдохновляют нас работать и покорять новые вершины. Спасибо всем огромное!
Надеемся, что подарки вам понравились, а музыкальный подарок вам будет приятно слушать за компьютером во время работы.
Только вчера отгрузили последние 17 коробок из предыдущего тиража, сегодня поступила часть новой партии. Учитывая, что тираж заказывался несколько месяцев назад, такой точностью можно восхищаться.
Но в этот раз тираж и большой и тяжелый, много полиграфии пришло.
Давно нас просили провести отдельную конференцию для разработчиков, чтобы можно было поговорить о технике вопросов.
Мы решили провести специальное однодневное мероприятие, предназначенное в первую очередь для партнеров и разработчиков, для всех тех, кто уже знаком с продуктом и работает с ним активно.
Участие в семинаре бесплатное. Дата: 14 декабря 2006 г. Время: 12:00 – 22:00 (фуршет c 19:00 до 22:00) Место: Останкинский парк, ресторан «О кино»
На семинаре мы расскажем о планах на будущее, о новых возможностях продукта «Битрикс: Управление сайтом 5.1» и наверное 6.0 С , обсудим инфоблоки+ и новые Компоненты 2.0, поговорим о модулях, которые будут выпущены в самое ближайшее время, о программе сертификации партнеров на 2007 год. Вы сможете напрямую пообщаться с разработчиками «Битрикс: Управление сайтом», обсудить планы развития продукта, принять участие в конкурсе для разработчиков. В завершении семинара вас ждет фуршет.
В пятницу, 1 декабря, у нас состоялось очередное коллективно собрание по утверждению технологии "Компонент 2.0".
Мы практикуем такую форму обсуждений, когда в большой комнате собираются разработчики, поддержка и маркетинг, и обсуждают обновления, новый функционал, планируемые изменений, технологические предложения...
Слово дается обычно тому человеку, который разрабатывал решение или является проводником идеи. Иногда несколько человек выступают, если работали вместе. Компьютер разработчика подключаем к проектору и...
Например, если новый модуль показывается всем, разработчик рассказывает, как он будет работать, как пользоваться интерфейсом, какие планы по доработкам. И самое главное в таких обсуждениях, на мой взгляд, организовать рабочее конструктивное обсуждение. Потенциал коллектива огромен! Мы все по-разному воспринимаем и обрабатываем информацию и, высказывая свое мнение, или просто озабоченность, мы помогаем проявиться мнениям и идеям других. Конструктивное обсуждение помогает найти наиболее правильные и взвешенные решения, отметить заслуги людей и всем по настоящему осознать объемы и масштабы выполненной работы.
Основной темой нашего обсуждения в пятницу были "Компоненты 2.0". Проект, который давно готовится, неоднократно обсуждался в небольших рабочих группах и вот прототип дозрел до презентации его всей компании
Выступать предстояло Юре Тушинскому, технический директор компании, и Алексею Кирсанову, ведущему разработчику нашей компании.
13 декабря в рамках "Платформы-2007" в Москве пройдет круглый стол «Как заработать деньги на разработке программного обеспечения».
В круглом столе примут участие: Александр «Саша» Галицкий, Михаил Елашкин, Феликс Мучник, Сергей Рыжиков.
Если вы занимаетесь бизнесом и ваш бизнес связан с разработкой ПО, то рекомендую посетить как круглый стол, как и вообще побывать на Платформе. Если вы работаете как аутсорсер или увлеклись "идеей" государства по поводу аутсорсинга - приходите, мы вам вправим мозги.
Кто не знает, напомню, что Платформа – основное технологическое мероприятие Майкрософт. На конференции будет 3000 человек со всей России. 40% - разработчики (а также архитекторы, руководители), 40% - ИТ-профессионалы (администраторы, руководители ИТ-служб), 20% - люди уровня CIO.
Ура! Мы стали "Лауреатами Премии Рунета-2006" в номинации "Технологии и Инновации"!
Я искренне поздравляю всех сотрудников нашей компании с этой наградой! Это большое достижение стало результатом прекрасной работы всего коллектива. Я всех вас люблю!
Только что приехал с награждения. Немного фотографий Все официальные новости будут завтра.
В сети активно обсуждается сходство дизайна Эльдорадо с дизайном западного проекта http://www.bestbuy.com/
Причем все шишки валятся на QSoft, мол, делали они и заимствовали дизайн тоже они. Но, на мой взгляд, все критики не смотрят в суть вещей, банально полагая, что QSoft может принимать решение за компанию с оборотом почти в 4 миллиарда баксов.
Все, кто делал сайты для более-менее крупных компаний, понимают, что в компаниях такого размера, с оборотом, с сеткой в 1000 магазинов, с кучей уровней утверждения решений... решение по дизайну основного сайта принимаются очень и очень тяжело, причем на самом верхнем уровне.
Ну давайте подумаем, что вообще происходит на рынке. Но вначале посмотрим в историю.
PR-директор «Эльдорадо» Тимофей Суровцев комментировать рестайлинг сети отказался, пообещав рассказать обо всем в четверг. Представители обслуживающего «Эльдорадо» рекламного агентства Aegis Media/OKS от комментариев также отказались.
Участники рынка отмечают, что новая цветовая гамма «Эльдорадо» почти полностью совпадает с цветами немецкой Media Markt, первые магазины которой должны открыться в России до конца этого года. «Эльдорадо» готовится к приходу конкурента»,- констатирует топ-менеджер крупной сети. Напомним, обе сети работают в формате жесткого дискаунтера.
«Эльдорадо» всегда использовало наиболее интересные рекламные идеи Media Markt, известен случай, когда «Эльдорадо» в точности скопировало их рекламный ролик»,- рассказывает PR-директор сети «Мир» Елизавета Тотунова. Рестайлинг «Эльдорадо» позволит сети после выхода на российский рынок Media Markt использовать потенциал немецкой сети, заключает она.
Первые российские магазины Mediamarkt откроются 2 декабря в "Рамсторах" на проспекте Вернадского и Правобережной улице в Москве. Как рассказал Ъ источник, знакомый с планами немецкой сети, специально для России сеть изменила корпоративные цвета с красно-белых на малиново-белые. В новых цветах уже оформлен и российский сайт ритейлера. "В других странах, где работает Mediamarkt, цвета брэнда останутся прежними. В России к изменению корпоративной расцветки в Mediamarkt прибегли, чтобы дистанцироваться от своего российского конкурента – 'Эльдорадо', который полностью копирует их стиль",– говорит собеседник Ъ. Информацию о смене корпоративных цветов для российского Mediamarkt подтвердила и глава российского представительства Metro Group Юлия Белова.
Вы видите, что такие решения принимаются осознанно и исполнители не дадут вам комментариев. На войне как на войне. Нет уже детских игр, есть обороты, проценты роста, динамика, акции. Задержка для конкурента на 1-2 года с выходом на рынок - это огромное состояние для одних и убытки для других.
Так что не будем ждать комментарии от QSоft-а. Уверен, они в бумагах о неразглашении зарылись по самые уши И не даст комментариев Эльдорадо.
Так что я думаю, что стоит нам откинуть эмоции и посмотреть на событие другими глазами.
Является ли BestBuy конкурентом для Эльдорадо или это только заимствованная успешная идея - рассуждать можно сколько угодно.
Фактически, в Интернете началась конкурентная война крупнейших мировых ретейлеров. Игроки соревнуются уже не только в офлайне, но и выбирают для себя конкурентов в Интернете и готовятся к длительным боевым действиям.
Сегодня заглянул на Сотфкей.Ру, посмотреть как идут у нас дела с продажами в этом месяце. По заказам то видно, что дела идут просто замечательно, но хотелось увидеть сумму продаж и убедиться, что запланированные темпы роста сохраняются.
На российском Софткее мы уже больше года в лидерах продаж стоим по продуктам В начале боролись с Касперскими, но уже довольно давно по продукту обгоняем. http://softkey.ru/catalog/rating.php?flt_PERIOD=360
В оборотах по компании мы уступаем еще Microsoft и Касперским
Удивительно, что до сих пор ключевой вопрос для этой аудитории - это регистрироваться или работать подпольно. Никак не хотят понять, что основные деньги можно заработать именно на юридических лицах. А для юридического лица очень невыгодно заключать договора с частными лицами. Это фактически, брать людей на работу и платить за них налоги. Иначе компания не может заплатить частнику деньги. Остается только нелегальная работа и оплата. А следовательно, на этом фрилансен собираем самых прижимистых и необязательных клиентов, скажем так.
Фрилансер должен понять, что нужно не пытаться сэкономить несчастные 6% налогов, работая нелегально. Намного ВЫГОДНЕЕ зарегистрироваться частным предпренимателем, заключать правильные договора, спокойно увеличить ценник за свои услуги за счет легальности для компании, снять риски невыплаты, снять риски клиента на неправильную передачу имущественных прав, платить с поступлений 6% налогов или 15% с прибыли и жить себе нормально, не опасаясь стука в дверь и наездов.
А то, что увеличить ценник при безналичной оплате можно просто в два раза - это совершенно точно.
Вообще, проекту Free-lance нужно изменять статус и отношение к фрилансерам с нелегальных черных частников, на нормальных частных творческих предпринимателей. Возможно, стоит проекту Free-lance сделать у себя поддержку в интерфейсе типа фрилансера (Частное лицо или частный предприниматель) и правильных юридических лиц показывать везде выше и лучше, в общем, всячески поддерживать.
А там глядишь, корпоративщики перестанут бояться, что их частник "кинет" и начнут нормальные договора подписывать и платить безналом. Отличная была бы рекламная кампания
Ну что, можно сказать, что новая версия 5.1 перешла из состояния бета-версии в релиз. Клиенты устанавливают, больших проблем пока не замечено. Идет сборка нового дистрибутива. Готовится официальный тест по нагрузочному тестированию.
Выпуском 5.1 мы завершили первый этап оптимизации, впереди еще ждет статистика, поиск и ряд других интересных идей...
Как я уже сказал, мы планируем провести масштабное нагрузочное тестирование. Но в рамках работы мы сами проводили тесты, о которых можно немного рассказать.
Начиная с версии 5.1.4 главного модуля, появились расширенные инструменты для отладки производительности компонент и всего сайта в целом.
Все уже знают параметры для страницы:
show_page_exec_time=Y - Выводит общее время исполнения страницы
show_include_exec_time=Y - выводит время исполнения каждой из компонент. В новой версии ядра еще выводится время формирования меню.
Появился еще один интересный параметр: show_sql_stat=Y
Этот параметр работает в корреляции с вышеперечисленными параметрами и выводит число SQL запросов, общее время исполнения SQL запросов и позволяет проанализировать сами запросы, как на всю страницу, так и на отдельно взятый компонент или меню.
Пример:
На этом рисунке представлена статистика SQL запросов для компоненты новостей на нашей главной странице. Выводится она 2 запросами. Общее время работы компоненты составляет 0.067 с. Время SQL запросов 0.0211 с или 31.49% от времени работы компоненты (%помогает выявлять ресурсоемкий PHP код или тяжелые запросы). Возле каждого запроса указывается, сколько раз аналогичные запросы повторялись с вариацией параметров. В статистике перечисляется, откуда вызван запрос и с какими параметрами.
Следующий пример со страницы блога. Запросов уже 5 штук. Но они потребляют меньше 7% от времени компоненты, которое составляет 0.0206 с. Важно, что само по себе число запросов не играет решающей роли, важнее время выполнения запросов.
Практика использования инструментария позволит: * быстро выявлять больные участки сайта * находить ошибки программирования, в которых компонент генерирует очень много запросов или мало, но медленных запросов (поддержкой были выявлены случаи, когда модифицированный партнером компонент вместо 3 наших запросов генерировал больше 4 тысяч и убивал сервер наповал) * выявлять особенности и недостатки конфигурации SQL сервера или отдельных таблиц (бывали случаи, когда обычный запрос на отдельном проекте работаел в сотни раз медленнее. Причина был в MySQL и лечилось все оптимизацией проблемной таблицы) * помочь партнерам указать нам на неоптимальные компоненты или проблемные участки, чтобы переработать их и улучшить производительность (чего греха таить, ряд компонент уже переписаны нами для нового дистрибутива, а некоторые находятся в работе)
Мы планируем и дальше развивать инструментарий отладки. Уже есть понимание, в каком направлении и как это лучше представить отладку в интерфейсе панелей, чтобы не вводить параметры руками.
Готовится к выпуску ряд завершающих обновлений по продукту в плане подготовки к выпуску 5.1.
Готовы и частично опубликованы следующие обновления: Главный модуль, Информационные блоки, Форум, Рекламы, Торговый каталог, Интернет-Магазин, Обучение, Опросы, Валюты. На очереди - Техподдержка, Управление структурой и визуальный редактор.
До релиза 5.1 осталось уже недолго.
Про функциональные изменения в модулях смотрите в истории версий: http://www.bitrixsoft.ru/sitemanager/versions.php эта страница ведется автоматически и представляет описания после появления обновления в системе SiteUpdate.
В своем сообщении я остановлюсь именно на вопросах производительности продукта.
Главный модуль 5.1.4:
В главном модуле переработаны целый ряд методов и функции. Код стал еще более оптимизированным для больших нагрузок и виртуальный хостинг.
В дополнение к имеющимся механизмам управляемого КЭШа добавился механизм кэширования графических файлов из библиотеки изображений (таблица b_file).
Рекомендуется включать этот механизм на виртуальных хостинга для уменьшения числа SQL запросов к удаленной или медленно базе данных. На выделенных машинах этот тип кэширования заметного результата может не дать. Рационально использовать такой кэш, если число файлов не очень большое (не больше 10 тысяч) или на странице выводиться одновременно много элементов.
Для этого типа информации использована интересная методика кэширования с разделением хранилища на секции. Это позволяет уменьшить число файлов и сделать кэш эффективней. Причем данные кэшируются с опережением, что даже при включении позволяет уменьшить число запросов. Но отметим, что по умолчанию этот механизм выключен, так как нет пока возможности определять динамически число файлов в b_files во время работы, а проектов с большим числом файлов возможно создание объемного кэша. Но мы рекомендуем попробовать включить кэширование на виртуальном хостинге и индивидуально для свое проекта определить применимость данного инструмента.
Добавлена поддержка управляемого кэша для типов информационных блоков и значений свойств типа "список". Константы CACHED_b_iblock_type и CACHED_b_iblock_property_enum соответственно.
По умолчанию кэширование включено и значения следующие: define("CACHED_b_iblock_type", 3600); define("CACHED_b_iblock_property_enum", 3600);
В функциях работы со списками элементов в массив возвращаемых полей элементов добавлено поле PROPERTY_*. Используется только в Инфоблоках+ и только при отсутствии группировки списка. Использование этого поля позволяет избежать дополнительных запросов к БД при вызове метода _CIBElement::GetProperties.
Также если в массиве возвращаемых полей элементов встречаются поля DETAIL_PAGE_URL, SECTION_PAGE_URL и LIST_PAGE_URL, то в случае отсутствия группировки список полей автоматически расширяется полями необходимыми для макроподстановок элементов пути.
Существенно оптимизированы некоторые компоненты.
Модуль рекламы 5.1.0:
Учитывая, что на странице реклама вызывается многократно, модуль рекламы был заметно оптимизирован.
Оптимизирован сбор статистики. При большом числе баннеров теперь выполняется только один набор запросов по сохранению данных, вместо отдельного набора ранее для каждого баннера.
В настройках модуля добавлена возможность отключить ограничения контрактов при показе баннеров. Если вы не используете контракты, включите эту опцию, это упростит запросы и исключит запросы на запись ненужных вам данных;
В параметрах баннера добавилась опция "Фиксировать число показов баннера". У баннеров, для которых подсчет количества показов не имеет принципиального смысла, рекомендуется отключить данную опцию; Это исключит запросы на запись статистики в базу данных.
Использован Autoload, значит для PHP5 есть предпочтения.
Интернет-Магазин и Торговый Каталог 5.1.Х:
В обоих модулях реализована поддержка Autoload что позволяет получит заметный выигрыш при использовании PHP5.
Оптимизированы компоненты магазина.
Оптимизирован и сделан более универсальным компонент показа цен данного товара. Для показа цен рекомендуется пользоваться компонентом "Цены товара" (price.php).
Оптимизирована функция выборки скидок и другие наиболее используемые методы модуля.
Рекомендуется пользоваться следующими методами: CCatalogGroup::GetListEx - для выборки типов цен с / без фильтра по группам пользователей, которые могут видеть (покупать) по ценам данного типа CCatalogGroup::GetGroupsPerms - для выборки кодов типов цен, которые может видеть и / или покупать член данных групп пользователей (метод использует кеширование) CCatalogGroup::GetListArray - для выборки массива всех типов цен (метод использует кеширование) CPrice::GetListEx - для выборки цен товара с / без фильтра по типу цены и группам пользователей, которые могут видеть (покупать) данный тип цены CCatalogDiscount::GetDiscount - для выборки скидок на данный товар (метод использует кеширование) CCatalogProduct::CountPriceWithDiscount - вычисление реальной цены по цене из каталога и результату метода выборки скидок (не пораждает запросов к базе)
В модуле включена поддержка функционала autoload. Так что не забывайте что PHP5 уже предпочтительнее.
По умолчанию кэширование включено. Ключи управления КЭШем:
* если определена константа CURRENCY_SKIP_CACHE и установлена в True, то валюты кэшироваться не будут * если определена константа CATALOG_STACK_DISCOUNT_LENGTH и установлена в целое число, то она определяет длину LRU кэша скидок (По умолчанию 100). * если определена константа CATALOG_STACK_ELEMENT_LENGTH и установлена в целое число, то она определяет длину LRU кеша групп, в которых находится товар (По умолчанию 200) * если определена константа CATALOG_SKIP_CACHE и установлена в True, то каталог кэшироваться не будет
В завершении про этот модуль пример использования LRU КЭШа.
Класс CStackCacheManager. Объект stackCacheManager создается автоматически. Можно установить длину кеша методом SetLength(entity, length), где entity - некий код сущности (например, catalog_discount для скидок), а length - длина. Можно проверить существование записи для данной сущности методом Exist(entity, key), где entity - некий код сущности, а key - код записи. Если запись с кодом key у сущности entity существует, то ее можно получить методом Get(entity, key). При этом запись в кеше перемещается на первое место. Если записи нет, то ее можно добавить методом Set(entity, key, value). При этом запись ставится в кеше на первое место, а последняя запись убирается, если кеш перерос свою длину. Методом Clear(entity) можно очистить все записи данной сущности.
Пример:
Нам нужно получить значение для ключа "zzz" сущности "my_entity"
$GLOBALS["stackCacheManager"]->SetLength("my_entity", 50); if ($GLOBALS["stackCacheManager"]->Exist("my_entity", "zzz")) { $arResult = $GLOBALS["stackCacheManager"]->Get("my_entity", "zzz"); } else { // Вычисляем $arResult, запрашиваем базу и все такое $GLOBALS["stackCacheManager"]->Set("my_entity", "zzz", $arResult); }
Опросы 5.1.0:
В управляемый кэш добавлены группы опросов, права доступа и привязка групп к сайтам. Время кэширования (в секундах) можно изменить с помощью константы VOTE_CACHE_TIME. По умолчанию время кэширования равно 1 часу. Для отключения управляемого кэша следует установить константу VOTE_CACHE_TIME в значение false;
Оптимизиран метод подключения модуля на странице; Оптимизирован повторный вызов функций;
В общем, стало заметно быстрее.
По мере готовности буду публиковать дополнительные материалы