Новое ядро Drupal 8 - Drupal kernel!

Вс, 03/06/2012 - 12:47

таки состоялось! ветка ядра с Add a Drupal kernel; leverage HttpFoundation and HttpKernel
Бнчмарки показывают 10% потерю производительности в текущем состоянии - когда страое и новое живут одновременно http://drupal.org/node/1578090

0 Спасибо

Комментарии

Аватар пользователя Shok211
4 года 10 months назад Shok211 #

Да... Да это как утверждать что Symfony 2 медленней yii.
Или 7 медленее 6

0 Спасибо
Аватар пользователя drupby
4 года 10 months назад drupby #

А что с вьюсом ?

0 Спасибо
Аватар пользователя andypost@drupal.org
4 года 10 months назад andypost@drupal.org #

вьюс - отдельная иннициатива

0 Спасибо
Аватар пользователя Murz
4 года 9 months назад Murz #

А что это за ветка и какие она даёт преимущества, чем отличается от обычной? На английском по ссылке прочитал, но чёт всё-равно мало чего понял.

0 Спасибо
Аватар пользователя andypost@drupal.org
4 года 9 months назад andypost@drupal.org #

Это другое ядро, которое принимает и обслуживает запросы, вскоре будут заменены hook_menu и система роутинга

0 Спасибо
Аватар пользователя Shok211
4 года 9 months назад Shok211 #

Ввели namespace, новую структуру папок, отдельные классы для каждой из сущностей, symfony autoloader

0 Спасибо
Аватар пользователя yexel
4 года 9 months назад yexel #

А я вот не могу понять - для чего это нашествие версий?
Есть недавно вышедший 7-й друпал.
К нему еще не все привыкли.
А уже готовится 8-й.
А при этом есть еще активно использующийся 6-й.

Чтобы пользователи и разработчики окончательно сошли с ума? :)

0 Спасибо
Аватар пользователя Shok211
4 года 9 months назад Shok211 #

Вы наверное не разработчик

0 Спасибо
Аватар пользователя yexel
4 года 9 months назад yexel #
Shok211 написал:
Вы наверное не разработчик

Нет. Я разработчикам задачи ставлю.
А это что-то меняет?

0 Спасибо
Аватар пользователя xxandeadxx
4 года 9 months назад xxandeadxx #
yexel написал:
Есть недавно вышедший 7-й друпал.
К нему еще не все привыкли.
А уже готовится 8-й.
А при этом есть еще активно использующийся 6-й.

если следовать этой логике, то идеальным было бы остановиться на 4-й версии?

0 Спасибо
Аватар пользователя yexel
4 года 9 months назад yexel #
xxandeadxx написал:
если следовать этой логике, то идеальным было бы остановиться на 4-й версии?

Идеальным было бы как-то простимулировать разработчиков модулей на 6-ке, дабы они "допилили" бы до приятного состояния модули на 6-ке.
А не заставлять их "распыляться" и на доработку по пожеланиям модулей и на 6-ке и на 7-ке.
Но это фанастика, понимаю.
и в результате приходится "допиливать" модули с drupal.org
Хотя... издержки open source, понимаю :)

0 Спасибо
Аватар пользователя sg85
4 года 9 months назад sg85 #
yexel написал:
Есть недавно вышедший 7-й друпал.
К нему еще не все привыкли.
А уже готовится 8-й.
А при этом есть еще активно использующийся 6-й.

Вышел то 7 даже очень давно, однако, из-за значительных различий в самих принципах работы с 6, сторонние модули(ибо делать сайт на чистом ядре это слишком круто, даже для джедаев, особенно если оно само немного глючит) более или менее стабильно работать стали действительно не давно(если сравнивать случай с 5 и 6, где по сути просто переработали API), вижу с 8ркой будет аналогичная история - ядро работать будет, а модули к нему портироваться еще несколько лет, т.е. год-два как минимум, после официального релиза, почти все будут сидеть на 7(так же как это было со всеми предыдущими версиями, причем не только Drupal, простейший пример - некоторые на Win7 с XP до сих пор отказывается переходить, хотя уже есть предрелизная 8рка(которая странным образом похожа на последнюю версию Ubuntu, хоть в нем и не пахнет КДЕ)

0 Спасибо
Аватар пользователя yexel
4 года 9 months назад yexel #
sg85 написал:
... более менее стабильно работать с 7-кой стали действительно не давно

Вот и я об этом.
Мы в одном проекте попробовали 7-ку.
Да, прикольно, да интересно.
Но некоторых нужных модулей на тот момент - не было.

Сейчас посмотрел - появились. В качестве эксперимента решили один проект на 6-ке перевести на 7-ку.
Ну типо надо ведь двигаться рядом с прогрессом.
И только это собрались делать - и тут вижу новость про начало торжественного шествия 8-ки.

Как думаете, стоит экспериментировать с 7-кой, если уже накоплен некоторый опыт с 6-кой?
Или стоит сразу на 8-ку ориентироваться?

0 Спасибо
Аватар пользователя Cyber
4 года 9 months назад Cyber #

Интересно

0 Спасибо
Аватар пользователя xxandeadxx
4 года 9 months назад xxandeadxx #
inza написал:
Для многих задач Win7 по сравнению с XP ничего не дает

Для многих задач Win7 по сравнению с XP многое дает

0 Спасибо
Аватар пользователя drupby
4 года 9 months назад drupby #
inza написал:
Просто у меня железо дохлое.

просто надо меньше разглагольствовать о херне всякой и больше дел делать - купишь себе и железо
правда мозги за лавэ не приобретешь - тут уж придётся довольствоваться тем что есть

0 Спасибо
Аватар пользователя Orion76
4 года 9 months назад Orion76 #

маздай...... а что это?-))

0 Спасибо
Аватар пользователя xxandeadxx
4 года 9 months назад xxandeadxx #
drupby написал:
купишь себе и железо

тру кодеры работают только за еду!

0 Спасибо
Аватар пользователя yexel
4 года 9 months назад yexel #
xxandeadxx написал:
тру кодеры работают только за еду!

где этих тру кодеров найти, не подскажете? :)

0 Спасибо
Аватар пользователя Shok211
4 года 9 months назад Shok211 #

Конкретно 8 ориентирована на разработчиков. И вы глубоко заблуждаетесь если думаете что решить одну и ту же "Нестандартную" задачу Легче на 6 чем 7 или тем более 8.

Включение динамических запросов, сущностей, AJAX framework... ничего подобного (в плане разработки) в 6 даже не было, а время на создание собственных велосипедов ой как не хочется тратить.

Так разработка сайта на семерке сокращается порядка полутора раз (Чистое Ядро). А перевод ядра 8 пускай и только части на ООП парадигму включая интеграцию с Symfony. Позволит использовать всякие вкуснящки вроде TWIG, Dependency Injector, Doctrine без придумывания собственных костылей.

И надеюсь наконец добавят Stack Traces для обработки ошибок. И будем нам счастье.

0 Спасибо
Аватар пользователя drupby
4 года 9 months назад drupby #
yexel написал:
где этих тру кодеров найти, не подскажете? :)

вот один

0 Спасибо
Аватар пользователя xxandeadxx
4 года 9 months назад xxandeadxx #
yexel написал:
начало торжественного шествия 8-ки.

вас обманули. шествие начнётся через полтора года

0 Спасибо
Аватар пользователя drupby
4 года 9 months назад drupby #
inza написал:
У полруги рядом на столе стоит современный комп с высокочастотным процем и мамой - постоянно глючит сбоит и вырубается. 3-4 часа стабильной работы в сутки.

офигенно репрезентативная выборка , по которой можно делать какие то выводы .

0 Спасибо
Аватар пользователя Crea
4 года 9 months назад Crea #

Для маленьких и средних проектов экономически выгодно пропускать 1 версию про апгрейде.
Крупные сайты выгоднее не апгрейдить и поддерживать самим.

0 Спасибо
Аватар пользователя Dan
4 года 9 months назад Dan #

subscribe

0 Спасибо
Аватар пользователя humorist
4 года 9 months назад humorist #

Да о чем вы тут пишите!? Седня наши с Грецией играют!!! Выйдут ли наши в 8-ку сильнейших сборных Европы!? Вот о какой 8-ке нужно сейчас думать!!!

0 Спасибо
Аватар пользователя Dan
4 года 9 months назад Dan #
humorist написал:
Вот о какой 8-ке нужно сейчас думать!!!

И как наши думы помогут футболистам? :)

0 Спасибо
Аватар пользователя WadimKo51
4 года 2 months назад WadimKo51 #

Возникло три вопросоа.

1 Как понял будет использоваться конфигурация через XML
Это сделанно чтобы те кто знает только PHP изучали ещё и XML ?
Какой толк от конфигурации через XML? Это сделанно чтобы конфиги хранить не в базе а в XML ?

2 Почему не сделать перевод хранящимся не в базе а в файлах, к ак в большенстве движков, наримен SMF и так далее и прсото вызывать значение переменных в зависимости от языка.

3 Так как новая версия основанна на фреймворке то там будет очень много файлов инклуйлиться для генерации страницы. Это будет медленно. Будет ли какой-то функцонал компиляции?

Это всё написал потмоу что Drupal 8 по всей видимости будет очень похож на Magento. Оно тоже оснвоанно на фреймворке, толко на Zend, там тоже есть конфигурация через XML и из админки туда заносяться данные при изменении настроек.

Больше всего пугает большое количество файлов, и отсутствие кнопки компиляции. На Magento такая кнопка даёт прирост прмиерно в 3 раза, в зависимости от скорости жётских дисков хостера. Особенно это сказываетсь после долгого простоя, когда файлы из кэша в памяти удаляются и снова туда нужно загружать, после длительной неактивности сайта.

Так так оно наверное будет удобно для разработки, но что-то монстрозностью всё это пугает.

По поводу перевода в админке, почему тогда не сделать редактор файлов перевода в админке.
Пользователь заходит в раздел переводы, открываетсья редактор с переменными и можно самому писать туда текст.
Всё ровно думаю мало кто их тех, кто не сообразит как отредактировать тексовой файл занимаетсья переводом в админке.
Ведь модуль переводов утяжеляет работу сайта, все это знают.

0 Спасибо
Аватар пользователя Murz
4 года 2 months назад Murz #
WadimKo51 написал:
3 Так как новая версия основанна на фреймворке то там будет очень много файлов инклуйлиться для генерации страницы. Это будет медленно. Будет ли какой-то функцонал компиляции?

Это всё написал потмоу что Drupal 8 по всей видимости будет очень похож на Magento. Оно тоже оснвоанно на фреймворке, толко на Zend, там тоже есть конфигурация через XML и из админки туда заносяться данные при изменении настроек.

Больше всего пугает большое количество файлов, и отсутствие кнопки компиляции. На Magento такая кнопка даёт прирост прмиерно в 3 раза, в зависимости от скорости жётских дисков хостера. Особенно это сказываетсь после долгого простоя, когда файлы из кэша в памяти удаляются и снова туда нужно загружать, после длительной неактивности сайта.

Так так оно наверное будет удобно для разработки, но что-то монстрозностью всё это пугает.

По-моему фреймворк в Друпал 8 выбрали не просто так, а после многочисленных тестов и анализов, которые показали что с Symphony он работает вроде как быстрее и появляются ещё какие-то преимущества, поэтому выбор был обоснован именно улучшениями, а не монстрозностью, интерпрайзом и добавлением проблем разработчикам.

0 Спасибо
Аватар пользователя Dan
4 года 2 months назад Dan #
WadimKo51 написал:
1 Как понял будет использоваться конфигурация через XML
Это сделанно чтобы те кто знает только PHP изучали ещё и XML ?
Какой толк от конфигурации через XML? Это сделанно чтобы конфиги хранить не в базе а в XML ?

Безусловно ради изучения юзерами XML. Разве могут быть другие причины :)
Drupal растёт и потихоньку "набирается ума", используя проверенные техники, такие как нормальный шаблонный движок, например. Или тектовые конфиги, которые можно легко править, деплоить, отслеживать в VCS.

WadimKo51 написал:
2 Почему не сделать перевод хранящимся не в базе а в файлах, к ак в большенстве движков, наримен SMF и так далее и прсото вызывать значение переменных в зависимости от языка.

Потому что БД быстрее.

WadimKo51 написал:
3 Так как новая версия основанна на фреймворке то там будет очень много файлов инклуйлиться для генерации страницы. Это будет медленно. Будет ли какой-то функцонал компиляции?

А APC и компания для чего нужны?

WadimKo51 написал:
Ведь модуль переводов утяжеляет работу сайта, все это знают.

Да. На говнохостингах с минимумом памяти для MySQL. Drupal не слишком-то на них ориентирован.

WadimKo51 написал:
Пользователь заходит в раздел переводы, открываетсья редактор с переменными и можно самому писать туда текст.

Что мешает делать это сейчас с po-файлами?

0 Спасибо
Аватар пользователя WadimKo51
4 года 2 months назад WadimKo51 #

К сожалению всё то, что вы написали не очень радует.
Но всё ровно СПАСИБО за ответ. От вас суть не зависит.

-
А APC и компания для чего нужны?
-
Мало где на хостинге есть подобное.
И во вторых, если сайт на виртуальном хостинге, то если сайт не активен какое-то время, всё это обнулиться даже если есть APC
И будет так. Псетитель придёт на сайт, и будет ждять 30 секунд пока откроеться главня, ну а потом будет нормально тыкать по страницам.
а если это будет поисковик то будет не хорошо.

////

Что мешает делать это сейчас с po-файлами?
-
Ничего. вопрос был в продолжение быстрости базы данных по сравнению с файлами. Можно посмотреть подробнее, где написано что перевод в базе быстрее чем на файлах?
////

А мне нравится такой шаблоный движок как сейчас на PHP

Не дай Бог, или кто угодно ещё, туда ещё Смарти доумяться прикрепить поддержки новомодности ради.
Тфу Тфу Тфу чтоб не накаркать....
Вот Смарти точно для изучения самого себя похоже нужен.
Не понимаю для кого это. проще уж PHP изучить на уровне правки шаблонов, чем Смарти изучать, чтоб писать прослойку.

0 Спасибо
Аватар пользователя Crea
4 года 2 months назад Crea #

Пока наивные рассуждают в блогах, может ли Друпал усидеть на 2 и более стульях, Дрис и Ко тащат его в "интирпрайз" семимильными шагами.
Так что фрилансерам-одиночкам и небольшим сайтам тут скоро станет ловить нечего.

0 Спасибо
Аватар пользователя WadimKo51
4 года 2 months назад WadimKo51 #

А причём тут наивнсть?
Хотите сказать, что всё развитие данного двжка изначально за много лет задумывалось для того чтобы стать корпоративным монстном который для работы требует отдельного железного сервера?

Ну для интерпрайз есть Typo3 с его супер шаблонизатором с собственным языком с интерпретатором TypoScript...
Хотите сказать, что будет что-то подобное?
Ну, как-то савсем уж грустно.

Благо конкуренция вещь в чем-то всё-таки полезная, а движок данный стал тем чем он стал только благодаря своему сообществу.

Если он станет узконаправленным для имеющих понятия и кашелёк то движка данного как он есть сейчас больше не будет.

И это не наивное рассуждение.

Или вы хотите сказать что товарищи из коммерческих CMS побашляли разработчиков бесплатных решений, чтоб те не составляли такой конкуренции?

А причём тут маленькие сайты или большие, вся суть в бабле.

По вашей логике получаеться, что если сайт к прмиеру большой, и не коммерческий, так это уже для наивных?

Куда мир катется, все на бабле помешались.
Интересно посмотреть цифру которая являлась бы потолком.

0 Спасибо
Аватар пользователя Dan
4 года 2 months назад Dan #
WadimKo51 написал:
Мало где на хостинге есть подобное.

Ещё раз - Drupal не ориентируется на хостинги за 30 рублей, хотя даже для них можно его подтюнить.

WadimKo51 написал:
И будет так. Псетитель придёт на сайт, и будет ждять 30 секунд пока откроеться главня, ну а потом будет нормально тыкать по страницам.

Если сайт посещают 2 раза в день, то может вообще его в статику сбросить через тот же буст или закэшировать через nginx, зачем сервер мучать?)

WadimKo51 написал:
Ничего. вопрос был в продолжение быстрости базы данных по сравнению с файлами. Можно посмотреть подробнее, где написано что перевод в базе быстрее чем на файлах?

Не вижу ни одной причины, чтобы БД была _медленне_ файлов. А тесты я уже когда-то гонял. Меня устроил результат.

WadimKo51 написал:
Не дай Бог, или кто угодно ещё, туда ещё Смарти доумяться прикрепить поддержки новомодности ради.

Смарти уже был.

WadimKo51 написал:
Не понимаю для кого это. проще уж PHP изучить на уровне правки шаблонов, чем Смарти изучать, чтоб писать прослойку.

Это пока не познаешь нормальные шаблонные движки)

0 Спасибо
Аватар пользователя Crea
4 года 2 months назад Crea #
Цитата:
А причём тут наивнсть?

Это не про вас. Просто часто встречаю на drupal.org посты типа "Сможет ли Друпал угодить и корпоративной аудитории и маленьким сайтам ?".

Да, Друпал уже давно не то(р)т.

0 Спасибо
Аватар пользователя Crea
4 года 2 months назад Crea #

Мне интересно другое.
Сможет ли интеграция Симфони и т.д. упростить Дру, уменьшить его собственный код.
Это, на самом деле, самый главный вопрос существования Дру как популярного, массового продукта.
Пока ставлю, что нет :)

0 Спасибо
Аватар пользователя WadimKo51
4 года 2 months назад WadimKo51 #

А у меня есть сайт на Друпал6 на хостинге за доллар в месяц, и ничего прекрасно работает. Посешаемость человек 20 в сутки, и как раз как вы написали страницы закэшированны в статику так как это подобие сайта визитки.

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

По поводу интеграции с Симфони, это вопрос не ко мне, не пользовался данным, и подобным им фреймворком, но судя по Magento, которым пользовался могу дмать что скорее оно уменьшит затраты на поддержания части кода выполняющего рутинные операции чем упростит. Оно скорее удешевит саму разработку движка. Хотя это тоже смотря что задуманно. Если задуманно написать что-то по функциональности привлекательное, но не думать о бустродействии, то это упростит. Хотя по идее это наложит определенные ограничения.

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

Хоть ЗендФреймворк и считаетсья вроди самым медленнм в мире, если не ошибаюсь, но у него всё-таки за спиной разработчики PHP.

0 Спасибо
Аватар пользователя Dan
4 года 2 months назад Dan #
Crea написал:
Сможет ли интеграция Симфони и т.д. упростить Дру, уменьшить его собственный код.

Дык посмотри на текущие размеры дистров - 8-ка в 2.5 раза тяжелее 7-ки. Фигушки проще станет )

0 Спасибо
Аватар пользователя Crea
4 года 2 months назад Crea #
Dan написал:
Crea написал:
Сможет ли интеграция Симфони и т.д. упростить Дру, уменьшить его собственный код.

Дык посмотри на текущие размеры дистров - 8-ка в 2.5 раза тяжелее 7-ки. Фигушки проще станет )

А если вычесть сторонний код ? Я так понимаю, туда запихнули все GPL-ное, что используется..не ?

0 Спасибо
Аватар пользователя WadimKo51
4 года 2 months назад WadimKo51 #

Ещё по поводу ереводов в файлах а не в базе могу скзать вот такой пример.
Есть OpenCart перевод в файлах. У него нет своего АПИ, модули ставяться правкой ядра.
Есть PrestaShop по своей сути очень похож кстати на Drupal там тоже перевод в базе, модули используют хуки и заменяюь функции в ядре.

Разица в производительности, сужу по загрузке страницы очень велика. Но не на большом числе твоаров, но это суть уже в другом.

Хотя это не от переодов, но всё-таи есть тенденция, движки где перевод в базе более тяжёлые по своей логике, поэтмоу возникают определенные ассоциации.

Было бы интересно знать, что переводы в базе хотя бы не то что быстрее, а хотя бы не на порядок медленнее файлов.

0 Спасибо
Аватар пользователя Murz
4 года 2 months назад Murz #
WadimKo51 написал:
Было бы интересно знать, что переводы в базе хотя бы не то что быстрее, а хотя бы не на порядок медленнее файлов.

Что быстрее - зависит от конкретных запросов.

Если нужно загрузить 5 строчек перевода - то база будет однозначно быстрее, чем парсить весь файл с 500 строчками.

Если нужно загрузить 500 строчек и все они в одном po файле - то файл быстрее.

Если нужно загрузить 500 строчек но все они раскиданы в 100 po файлах - то в этом случае мне кажется база будет быстрее.

Имхо база - более гибкое решение, а для увеличения производительности из базы можно всегда сделать выборку часто используемых строк и закешировать их в один дамп, грузить одним запросом.

Ведь если мы грузим файл, то чтобы найти строку с ключом "phrase" нам нужно подгрузить весь файл со всеми строками, сделать полный перебор каждой строки сверху вниз и сравнивать с ключом. А база делает тот же самый поиск по индексу, поэтому сделает поиск в разы быстрее по процессорному времени. Но при использовании базы ещё добавляются задержки на формирование и парсинг sql-запроса, передачу данных обратно в php и др, поэтому тоже всё зависит от случая. Но при огромном количестве строк мне кажется база всё же выиграет в производительности.

Например на моём сайте 18000 строк перевода, сколько займёт процессорного времени перебор этого массива чтобы найти определенный ключ и сколько - поиск по индексу в базе?

Также ещё стоит учесть, что при применении файлов - это всё будет подгружаться из сотни файлов, каждый из которых нужно подгрузить через file_get_contents, распарсить в массив - это тоже лишнее время и ресурсы. И ещё потом это всё загрузить в память - судя по объему текущей таблицы в mysql - около 4 мегабайт памяти оно смело откушает.

0 Спасибо
Аватар пользователя kyky
4 года 2 months назад kyky #

Переводы в базе -- это шляпа. Да, одну строку вытащить из базы -- это быстро. А если в процессе генерации страницы нужно перевести 100 строк, то 100 запросов будет медленнее.
Переводы нужно хранить в памяти или каком-то быстром key->value хранилище.

0 Спасибо
Аватар пользователя Murz
4 года 2 months назад Murz #
kyky написал:
Переводы в базе -- это шляпа. Да, одну строку вытащить из базы -- это быстро. А если в процессе генерации страницы нужно перевести 100 строк, то 100 запросов будет медленнее.
Переводы нужно хранить в памяти или каком-то быстром key->value хранилище.

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

Возьмём реальный пример моего сайта: всего 18 тысяч строк перевода в базе, из которых нужно загрузить для одной страницы 100 строк.

При использовании базы:
1. Делаем 100 sql запросов, выполняется 100 поисков по масссиву из 18 тысяч строк с использованием индекса.

При использовании файлов:
1. Подгружаем все po-файлы в память - каждый файл читаем с диска, пробегаемся по каждой строчке файла и формируем PHP массив.
2. 100 раз обращаемся к этому массиву для поиска значения по ключу - т.е. 100 раз делаем полный перебор всех строк для поиска нужной (навряд ли php использует индекс для поиска по ключам массива).

В итоге имхо первый способ будет быстрее второго.

0 Спасибо
Аватар пользователя kyky
4 года 2 months назад kyky #
Murz написал:
Переводы кешируются для каждой страницы, поэтому для анонимуса - они будут грузиться одним запросом, а 100 запросов будет делаться только после сброса кеша.

Вот кстати, то, что анонимам Друпал показывает одно, а залогиненым другое -- есть чистой воды мудизм. Нельзя делать разницу между анонимом и пользователями. И те и другие должны видеть актуальную информацию. Это идиотское правило, из-за него вся система кеширования Друпала построена чрез жопу.

Murz написал:
Возьмём реальный пример моего сайта:...

Конечно, все зависит от конкретного случая.
Файлы переводов могут лежать на RAM-диске, скорость доступа к ним буде выше на порядки;
Переводы могут храниться как php-массивы вида "исходная строка"->"локализованная строка".
Разрабы любезно предлагают выносить переводы в settings.php

0 Спасибо
Аватар пользователя Murz
4 года 2 months назад Murz #
kyky написал:
Murz написал:
Переводы кешируются для каждой страницы, поэтому для анонимуса - они будут грузиться одним запросом, а 100 запросов будет делаться только после сброса кеша.

Вот кстати, то, что анонимам Друпал показывает одно, а залогиненым другое -- есть чистой воды мудизм. Нельзя делать разницу между анонимом и пользователями. И те и другие должны видеть актуальную информацию. Это идиотское правило, из-за него вся система кеширования Друпала построена чрез жопу.

В большинстве сайтов анонимусы это 99% посетителей сайта, для них как раз система кеширования и сделана, поэтому она устроена просто и работает быстро.
А для сайтов где много зарегистрированных пользователей (социальные сети, порталы) - универсального решения не придумаешь, поэтому в таких случаях для кеширования нужно использовать дополнительные модули или кешировать вручную.

kyky написал:
Murz написал:
Возьмём реальный пример моего сайта:...

Конечно, все зависит от конкретного случая.
Файлы переводов могут лежать на RAM-диске, скорость доступа к ним буде выше на порядки;
Переводы могут храниться как php-массивы вида "исходная строка"->"локализованная строка".
Разрабы любезно предлагают выносить переводы в settings.php

Я что-то ни одного хостинга не припомню где дают RAM-диск для переводов ;)
А php-массив всё-равно нужно откуда-то загрузить (опять же из файла размером в 4 мегабайта) и потратить процессорное время на раскукоживание в пямять, даже если он через serialize записан. И после того как мы получили php-массив в оперативной памяти - поиск каждого ключа полным перебором 18 тысяч строк - никуда не делся, а он всяко медленней чем поиск по индексу.

И 18 тысяч строк - это не конкретный тяжелый случай, а обычный стандартный сайт на друпале с использованием около 10-20 дополнительных модулей.

0 Спасибо
Аватар пользователя WadimKo51
4 года 2 months назад WadimKo51 #

А зачем вы всё в кучу ложите?
то есть всё в один файл?

Для каждого модуля может быть свой файт, как напрмиер в OpenCart вот прмиер

<?php
// Heading 
$_['heading_title']      = 'My Account';

// Text
$_['text_account']       = 'Account';
$_['text_my_account']    = 'My Account';
$_['text_my_orders']     = 'My Orders';
$_['text_my_newsletter'] = 'Newsletter';
$_['text_edit']          = 'Edit your account information';
$_['text_password']      = 'Change your password';
$_['text_address']       = 'Modify your address book entries';
$_['text_wishlist']      = 'Modify your wish list';
$_['text_order']         = 'View your order history';
$_['text_download']      = 'Downloads';
$_['text_reward']        = 'Your Reward Points'
$_['text_return']        = 'View your return requests'
$_['text_transaction']   = 'Your Transactions'
$_['text_newsletter']    = 'Subscribe / unsubscribe to newsletter';
?>

а в шаблоне вставляем 'text_newsletter' и так далее, а в зависимости от языка выбираетсья нужный файл, вернее нужная папка с файлами от каждого модуля. и всё.
открываетсья страница с набором модулей, беруться файлы по числу модулей, там строк перевода штук 20 и всё.
открываетья другая страница, там друой набор модулей, другие фалы перевода, и всё.

Зачем всё в один огромный файл.

а у каждого модуля свой масив, впернее свой файл с переменными который прикрепляется при вызове конкретного модуля.

так сделано было в osCommerce OpenCart, Даже в многострадальной Joomla так сделано.

Читал чо хранение переводов в базе сделанно только для того чтобы из админки можно было бы править перевод, а в первом сообщении написал, что при желании можно пристроить в админку редактор этих PHP файлов с переводом как это в Joomla сделано.

0 Спасибо
Аватар пользователя Murz
4 года 2 months назад Murz #
WadimKo51 написал:
А зачем вы всё в кучу ложите?
то есть всё в один файл?

Для каждого модуля может быть свой файт, как напрмиер в OpenCart вот прмиер
так сделано было в osCommerce OpenCart, Даже в многострадальной Joomla так сделано.

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

Поэтому остаётся два пути - либо загрузить всё сразу, либо при каждом запросе на первод разбираться какой это модуль спрашивает, в какой папке и какой файл подгружать, потом подгружаем файл, парсим и выводим конкретную строку. Соответственно при каждом запросе будет тратиться время на все эти операции, а если запросов не 2-3 а более 100 - то это будет заметно медленнее, чем за раз подгрузить всё что может понадобиться, либо работать с базой.

0 Спасибо
Аватар пользователя WadimKo51
4 года 2 months назад WadimKo51 #

В OpenCart тоже грузиться только то, что отображаеться.
А с чем явязано, что Drupal грузит все установленные модули?

Вы очень интересно написали про это. Не знал таких деталей.

Получаетсья что если например я установил модуль rules и сделал одно только правило на то, чтобы когда пользователь пожаловался на ссобщение форума то администратору приходило письмо.
Получаетсья при загрузке страниц, если не кто не что не нажимет всё ровно будет грузитьмя этот модуль?

или например если я установил модуль опросов quiz и quizreg от спам ботов и сделал опрос на отдельной странице. То при загрузке савсем других разделов всё ровно будет грузиться модуль quiz?

Примерно так же будет и в 8 версии?

0 Спасибо
Аватар пользователя Murz
4 года 2 months назад Murz #
WadimKo51 написал:
В OpenCart тоже грузиться только то, что отображаеться.
А с чем явязано, что Drupal грузит все установленные модули?

Вы очень интересно написали про это. Не знал таких деталей.

Получаетсья что если например я установил модуль rules и сделал одно только правило на то, чтобы когда пользователь пожаловался на ссобщение форума то администратору приходило письмо.
Получаетсья при загрузке страниц, если не кто не что не нажимет всё ровно будет грузитьмя этот модуль?

или например если я установил модуль опросов quiz и quizreg от спам ботов и сделал опрос на отдельной странице. То при загрузке савсем других разделов всё ровно будет грузиться модуль quiz?

Примерно так же будет и в 8 версии?

При каждой загрузке грузится .module файл всех включенных на сайте модулей, где находятся хуки (перехватчики) всех нужных событий, без этого друпал не сможет понять что, например, модулю антиспама нужно слушать все события по выводу формы и добавлять туда свою защиту.

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

По поводу Joomla - там всё это сделано намного хуже: в построении странице участвует только один модуль (который вызывается через url, например com_content), и он уже сам вынужден подгружать все остальные модули, которые ему понадобятся.

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

0 Спасибо
Аватар пользователя natbampo
4 года 2 months назад natbampo #
WadimKo51 написал:
А с чем явязано, что Drupal грузит все установленные модули?

При загрузке страницы постоянно грузятся головные файлы каждого включенного модуля (там где реализованы хуки), а не прям "весь" модуль со всем функционалом.

0 Спасибо

Страницы