ocdev_pro Опубликовано: 18 апреля 2017 Поделиться Опубликовано: 18 апреля 2017 27 минут назад, markimax сказал: Да подчеркну все же преимущества шаблонизаторов «Преимущество» шаблонизаторов только в одном Чтобы криворукие идиоты не вставляли в tpl new Class() и т.п. вызовы которые должны быть в контроллерах Ахаах в яблочко) А что на счет кеширования, если оно будет из коробки или почти из коробки от Даниеля, разве будет разница есть шаблонизатор или нет? И если кеш файовый не пригоден на том или ином проекту будет может как в XenForo шаблоны переносить в БД хранить? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 18 апреля 2017 Поделиться Опубликовано: 18 апреля 2017 37 минут назад, Waha сказал: Ахаах в яблочко) А что на счет кеширования, если оно будет из коробки или почти из коробки от Даниеля, разве будет разница есть шаблонизатор или нет? А у него нет никакого кеширования и вряд ли будет в ближайшее время и читая его ответы пользователям с нагруженными проектами (кто то кстати у нас на форуме давал ссылки на его ответы возмущенным пользователям)- не планирует особо, там много чего надо переделывать в архитектуре opencart И даже в twig выключено, я так понял из - за проблем "синхронизации" архитектур Вообще с кешированием в opencart все "сложно" и запутано, нету единых стандартов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 В 18.04.2017 в 12:07, Waha сказал: Думаю Даниель специально так делает, все хотят заработать и несовместимость модулей один из способов продавать больше. Платформа то бесплатная, надо же где-то монетизацию включать) И не жалуйтесь, кто не ленивый использует это с выгодой. Вы зрите в корень. Только я не понимаю, почему подавляющее большинство здешних постояльцев не хотят увидеть позитив с финансовой стороны, но упорно ищут любые зацепки, что бы покритиковать. Такое складывается впечатление, что они тут не по собственной воле что бы заработать на предоставлении услуг и товаров, а их кто-то когда-то заставил это сделать, они "отстрелялись", сделав пару шаблонов/модулей ещё под 1.5 и теперь любое продолжение работы - это каторга и бесперспективная трата времени, а тут еще и палки в колеса ставят. Вот же демон этот Даниэль, правда? Лол. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 @destreser все очень просто, тут люди думают не только за деньги 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 5 минут назад, ArtemPitov сказал: @destreser все очень просто, тут люди думают не только за деньги Совершенно верно Думают про экосистему opencart Чтобы он был популярен (а будет популярен - еще больше кстати заработают разработчики) Посмотрите на маркетплейс - да оттуда свалило очень много разработчиков хороших модулей. Их просто достал частичный маразм Даниэля (twig это вообще имхо идиотизм) Посмотрите какая фрагментация opencart сейчас ... не должно такого быть 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 (изменено) 4 часа назад, markimax сказал: Думают про экосистему opencart При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Изменено 19 апреля 2017 пользователем destreser 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 33 минуты назад, destreser сказал: При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Раньше все кто сейчас продают модули, развивали и поддерживали систему абсолютно безоплатно, альтруисты, и значительно позже начали монетизироваться. И это уже больше подходит как вознаграждение за труды которые были приняты для раскрутки платформы и поддержки форума, ведь все темы на форуме в которых просят совета или решают проблему решаются как раз за счет этих самых продавцов модулей (опытных специалистов). На счет шаблонизатора, если он создает тормоза, то это явный минус. Да и ничего плохого в tpl для меня лично не было. на счет "бери и пили" так почти все "рукастые" сайтопейсатели уже работают на своих сборках и ставят их клиентам... Идеальной платформы нету, и под каждый проект всегда будут разные решения 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Скрытый текст при том, что 2.3 цифры приятнее: Скрытый текст Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 если посмотреть развитие опенкарта и попытаться осмыслить задачу дениэля то вывод один - *** - Мужик, хоч е*ться? - Хочу! - Прокалывает все шины шилом и говорит: Вот - е*сь! *** )) 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 час назад, RGB сказал: Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да откуда? Основное время отобрал шаблонизатор 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 18 апреля 2017 Поделиться Опубликовано: 18 апреля 2017 37 минут назад, Waha сказал: Ахаах в яблочко) А что на счет кеширования, если оно будет из коробки или почти из коробки от Даниеля, разве будет разница есть шаблонизатор или нет? А у него нет никакого кеширования и вряд ли будет в ближайшее время и читая его ответы пользователям с нагруженными проектами (кто то кстати у нас на форуме давал ссылки на его ответы возмущенным пользователям)- не планирует особо, там много чего надо переделывать в архитектуре opencart И даже в twig выключено, я так понял из - за проблем "синхронизации" архитектур Вообще с кешированием в opencart все "сложно" и запутано, нету единых стандартов. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 В 18.04.2017 в 12:07, Waha сказал: Думаю Даниель специально так делает, все хотят заработать и несовместимость модулей один из способов продавать больше. Платформа то бесплатная, надо же где-то монетизацию включать) И не жалуйтесь, кто не ленивый использует это с выгодой. Вы зрите в корень. Только я не понимаю, почему подавляющее большинство здешних постояльцев не хотят увидеть позитив с финансовой стороны, но упорно ищут любые зацепки, что бы покритиковать. Такое складывается впечатление, что они тут не по собственной воле что бы заработать на предоставлении услуг и товаров, а их кто-то когда-то заставил это сделать, они "отстрелялись", сделав пару шаблонов/модулей ещё под 1.5 и теперь любое продолжение работы - это каторга и бесперспективная трата времени, а тут еще и палки в колеса ставят. Вот же демон этот Даниэль, правда? Лол. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ArtemPitov Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 @destreser все очень просто, тут люди думают не только за деньги 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 5 минут назад, ArtemPitov сказал: @destreser все очень просто, тут люди думают не только за деньги Совершенно верно Думают про экосистему opencart Чтобы он был популярен (а будет популярен - еще больше кстати заработают разработчики) Посмотрите на маркетплейс - да оттуда свалило очень много разработчиков хороших модулей. Их просто достал частичный маразм Даниэля (twig это вообще имхо идиотизм) Посмотрите какая фрагментация opencart сейчас ... не должно такого быть 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 (изменено) 4 часа назад, markimax сказал: Думают про экосистему opencart При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Изменено 19 апреля 2017 пользователем destreser 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 33 минуты назад, destreser сказал: При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Раньше все кто сейчас продают модули, развивали и поддерживали систему абсолютно безоплатно, альтруисты, и значительно позже начали монетизироваться. И это уже больше подходит как вознаграждение за труды которые были приняты для раскрутки платформы и поддержки форума, ведь все темы на форуме в которых просят совета или решают проблему решаются как раз за счет этих самых продавцов модулей (опытных специалистов). На счет шаблонизатора, если он создает тормоза, то это явный минус. Да и ничего плохого в tpl для меня лично не было. на счет "бери и пили" так почти все "рукастые" сайтопейсатели уже работают на своих сборках и ставят их клиентам... Идеальной платформы нету, и под каждый проект всегда будут разные решения 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Скрытый текст при том, что 2.3 цифры приятнее: Скрытый текст Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 если посмотреть развитие опенкарта и попытаться осмыслить задачу дениэля то вывод один - *** - Мужик, хоч е*ться? - Хочу! - Прокалывает все шины шилом и говорит: Вот - е*сь! *** )) 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 час назад, RGB сказал: Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да откуда? Основное время отобрал шаблонизатор 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 В 18.04.2017 в 12:07, Waha сказал: Думаю Даниель специально так делает, все хотят заработать и несовместимость модулей один из способов продавать больше. Платформа то бесплатная, надо же где-то монетизацию включать) И не жалуйтесь, кто не ленивый использует это с выгодой. Вы зрите в корень. Только я не понимаю, почему подавляющее большинство здешних постояльцев не хотят увидеть позитив с финансовой стороны, но упорно ищут любые зацепки, что бы покритиковать. Такое складывается впечатление, что они тут не по собственной воле что бы заработать на предоставлении услуг и товаров, а их кто-то когда-то заставил это сделать, они "отстрелялись", сделав пару шаблонов/модулей ещё под 1.5 и теперь любое продолжение работы - это каторга и бесперспективная трата времени, а тут еще и палки в колеса ставят. Вот же демон этот Даниэль, правда? Лол. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ArtemPitov Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 @destreser все очень просто, тут люди думают не только за деньги 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 5 минут назад, ArtemPitov сказал: @destreser все очень просто, тут люди думают не только за деньги Совершенно верно Думают про экосистему opencart Чтобы он был популярен (а будет популярен - еще больше кстати заработают разработчики) Посмотрите на маркетплейс - да оттуда свалило очень много разработчиков хороших модулей. Их просто достал частичный маразм Даниэля (twig это вообще имхо идиотизм) Посмотрите какая фрагментация opencart сейчас ... не должно такого быть 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 (изменено) 4 часа назад, markimax сказал: Думают про экосистему opencart При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Изменено 19 апреля 2017 пользователем destreser 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 33 минуты назад, destreser сказал: При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Раньше все кто сейчас продают модули, развивали и поддерживали систему абсолютно безоплатно, альтруисты, и значительно позже начали монетизироваться. И это уже больше подходит как вознаграждение за труды которые были приняты для раскрутки платформы и поддержки форума, ведь все темы на форуме в которых просят совета или решают проблему решаются как раз за счет этих самых продавцов модулей (опытных специалистов). На счет шаблонизатора, если он создает тормоза, то это явный минус. Да и ничего плохого в tpl для меня лично не было. на счет "бери и пили" так почти все "рукастые" сайтопейсатели уже работают на своих сборках и ставят их клиентам... Идеальной платформы нету, и под каждый проект всегда будут разные решения 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Скрытый текст при том, что 2.3 цифры приятнее: Скрытый текст Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 если посмотреть развитие опенкарта и попытаться осмыслить задачу дениэля то вывод один - *** - Мужик, хоч е*ться? - Хочу! - Прокалывает все шины шилом и говорит: Вот - е*сь! *** )) 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 час назад, RGB сказал: Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да откуда? Основное время отобрал шаблонизатор 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 5 минут назад, ArtemPitov сказал: @destreser все очень просто, тут люди думают не только за деньги Совершенно верно Думают про экосистему opencart Чтобы он был популярен (а будет популярен - еще больше кстати заработают разработчики) Посмотрите на маркетплейс - да оттуда свалило очень много разработчиков хороших модулей. Их просто достал частичный маразм Даниэля (twig это вообще имхо идиотизм) Посмотрите какая фрагментация opencart сейчас ... не должно такого быть 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 (изменено) 4 часа назад, markimax сказал: Думают про экосистему opencart При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Изменено 19 апреля 2017 пользователем destreser 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 33 минуты назад, destreser сказал: При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Раньше все кто сейчас продают модули, развивали и поддерживали систему абсолютно безоплатно, альтруисты, и значительно позже начали монетизироваться. И это уже больше подходит как вознаграждение за труды которые были приняты для раскрутки платформы и поддержки форума, ведь все темы на форуме в которых просят совета или решают проблему решаются как раз за счет этих самых продавцов модулей (опытных специалистов). На счет шаблонизатора, если он создает тормоза, то это явный минус. Да и ничего плохого в tpl для меня лично не было. на счет "бери и пили" так почти все "рукастые" сайтопейсатели уже работают на своих сборках и ставят их клиентам... Идеальной платформы нету, и под каждый проект всегда будут разные решения 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Скрытый текст при том, что 2.3 цифры приятнее: Скрытый текст Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 если посмотреть развитие опенкарта и попытаться осмыслить задачу дениэля то вывод один - *** - Мужик, хоч е*ться? - Хочу! - Прокалывает все шины шилом и говорит: Вот - е*сь! *** )) 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 час назад, RGB сказал: Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да откуда? Основное время отобрал шаблонизатор 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
destreser Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 (изменено) 4 часа назад, markimax сказал: Думают про экосистему opencart При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Изменено 19 апреля 2017 пользователем destreser 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 33 минуты назад, destreser сказал: При всём уважении, это всё красивые слова. Я не хотел бы скатываться к провокационным вопросам, но вот серьезно, вы можете хоть приблизительно назвать скольких людей (в % от этого сообщества) красота кода и архитектуры беспокоит больше, чем потенциальная прибыль? Такие есть, я не спорю, но тут на скорости гиперзвука подлетает второй вопрос - а сколько из них реально коммитит на гх? Тут ведь как получается - если их достаточно много, то почему бы не форкнуть и пилить своё, с блекджеком и без твига? Идей ведь масса, глаза горят, все знают "как правильно". Если же мало - то о каком влиянии на экосистему вообще может идти речь? Ну, я бы мог много написать по этой теме, но я не ставил себе цели кого-то переубеждать, так что воздержусь. Замечу только, что у меня совсем другой взгляд на сабж и даже в использовании шаблонизатора я вижу больше плюсов, чем недостатков. А лично для себя я недостатков не вижу вообще. Раньше все кто сейчас продают модули, развивали и поддерживали систему абсолютно безоплатно, альтруисты, и значительно позже начали монетизироваться. И это уже больше подходит как вознаграждение за труды которые были приняты для раскрутки платформы и поддержки форума, ведь все темы на форуме в которых просят совета или решают проблему решаются как раз за счет этих самых продавцов модулей (опытных специалистов). На счет шаблонизатора, если он создает тормоза, то это явный минус. Да и ничего плохого в tpl для меня лично не было. на счет "бери и пили" так почти все "рукастые" сайтопейсатели уже работают на своих сборках и ставят их клиентам... Идеальной платформы нету, и под каждый проект всегда будут разные решения 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Скрытый текст при том, что 2.3 цифры приятнее: Скрытый текст Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 если посмотреть развитие опенкарта и попытаться осмыслить задачу дениэля то вывод один - *** - Мужик, хоч е*ться? - Хочу! - Прокалывает все шины шилом и говорит: Вот - е*сь! *** )) 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 час назад, RGB сказал: Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да откуда? Основное время отобрал шаблонизатор 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Скрытый текст при том, что 2.3 цифры приятнее: Скрытый текст Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 если посмотреть развитие опенкарта и попытаться осмыслить задачу дениэля то вывод один - *** - Мужик, хоч е*ться? - Хочу! - Прокалывает все шины шилом и говорит: Вот - е*сь! *** )) 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 час назад, RGB сказал: Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да откуда? Основное время отобрал шаблонизатор 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 если посмотреть развитие опенкарта и попытаться осмыслить задачу дениэля то вывод один - *** - Мужик, хоч е*ться? - Хочу! - Прокалывает все шины шилом и говорит: Вот - е*сь! *** )) 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 час назад, RGB сказал: Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да откуда? Основное время отобрал шаблонизатор 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Пока что практически ничего не знаю про twig и с чем его едят, но решил поставить 3.0 и проверить, правда ли изменилась скорость, с которой главная грузится в браузере, получилось вот так: Показать контент при том, что 2.3 цифры приятнее: Показать контент Но учитывая dev-версию тройки, может быть к более-менее стабильному релизу что-то улучшится Да у меня почти такие же печальные результаты Это все "работа" шаблонизатора Я представляю сколько ресурсов уходит на парсинг регулярками twig шаблонов Так что я думаю не стоит ждать и от релиза скорости Лучше переключать в режим php tpl Ох и прогнулся Даниэль перед "спонсорами" - инвесторами 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 А хотите еще "приколоться" с twig шаблонизатора ? Смотрите какой php код генерит с тривиального шаблона twig {% extends "base.html" %} {% block title %}Серия романов о Гарри Поттере{% endblock %} {% block content %} <h1>Серия романов о Гарри Поттере</h1> <div id="books"> {% for book in books %} <div class="book"> <strong>{{book.number}}</strong>. "<em>{{book.title}}"</em> - {{book.date}} </div> {% endfor %} </div> {% endblock %} мАмА дАрАгАя : Скрытый текст <?php /* base.html */ class __TwigTemplate_8944b57466f08564caa53a1988261ae0 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = false; $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doDisplay(array $context, array $blocks = array()) { // line 1 echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"ru\"> <head> <title>"; // line 4 $this->displayBlock('title', $context, $blocks); echo "</title> <meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"/> </head> <body> <div id=\"content\"> "; // line 10 $this->displayBlock('content', $context, $blocks); // line 12 echo "</div> </body> </html>"; } // line 4 public function block_title($context, array $blocks = array()) { } // line 10 public function block_content($context, array $blocks = array()) { // line 11 echo " "; } public function getTemplateName() { return "base.html"; } public function getDebugInfo() { return array ( 52 => 11, 49 => 10, 44 => 4, 37 => 12, 26 => 4, 21 => 1, 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 10, 29 => 3,); } } <?php /* books.html */ class __TwigTemplate_b8cee45188afdb4e6ad9c60dbacb54c3 extends Twig_Template { public function __construct(Twig_Environment $env) { parent::__construct($env); $this->parent = $this->env->loadTemplate("base.html"); $this->blocks = array( 'title' => array($this, 'block_title'), 'content' => array($this, 'block_content'), ); } protected function doGetParent(array $context) { return "base.html"; } protected function doDisplay(array $context, array $blocks = array()) { $this->parent->display($context, array_merge($this->blocks, $blocks)); } // line 3 public function block_title($context, array $blocks = array()) { echo "Серия романов о Гарри Поттере"; } // line 5 public function block_content($context, array $blocks = array()) { // line 6 echo "<h1>Серия романов о Гарри Поттере</h1> <div id=\"books\"> "; // line 9 $context['_parent'] = (array) $context; $context['_seq'] = twig_ensure_traversable((isset($context["books"]) ? $context["books"] : null)); foreach ($context['_seq'] as $context["_key"] => $context["book"]) { // line 10 echo " <div class=\"book\"> \t<strong>"; // line 11 echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "number"), "html", null, true); echo "</strong>. \"<em>"; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "title"), "html", null, true); echo "\"</em> - "; echo twig_escape_filter($this->env, $this->getAttribute((isset($context["book"]) ? $context["book"] : null), "date"), "html", null, true); echo " </div> "; } $_parent = $context['_parent']; unset($context['_seq'], $context['_iterated'], $context['_key'], $context['book'], $context['_parent'], $context['loop']); $context = array_merge($_parent, array_intersect_key($context, $_parent)); // line 14 echo "</div> "; } public function getTemplateName() { return "books.html"; } public function isTraitable() { return false; } public function getDebugInfo() { return array ( 63 => 14, 50 => 11, 47 => 10, 43 => 9, 38 => 6, 35 => 5, 29 => 3,); } } <?php require_once 'lib/Twig/Autoloader.php'; Twig_Autoloader::register(); $loader = new Twig_Loader_Filesystem('templates'); $twig = new Twig_Environment($loader, array( 'cache' => 'compilation_cache', 'auto_reload' => true )); $books = array( array('number' => 'Книга 1', 'title' => 'Гарри Поттер и философский камень', 'date' => '30.06.1997'), array('number' => 'Книга 2', 'title' => 'Гарри Поттер и Тайная комната', 'date' => '2.07.1998'), array('number' => 'Книга 3', 'title' => 'Гарри Поттер и узник Азкабана', 'date' => '8.07.1999'), array('number' => 'Книга 4', 'title' => 'Гарри Поттер и Кубок огня', 'date' => '8.07.2000'), array('number' => 'Книга 5', 'title' => 'Гарри Поттер и Орден Феникса', 'date' => '21.07.2003'), array('number' => 'Книга 6', 'title' => 'Гарри Поттер и Принц-полукровка', 'date' => '16.07.2005'), array('number' => 'Книга 7', 'title' => 'Гарри Поттер и Дары Смерти', 'date' => '21.07.2007') ); echo $twig->render('books.html', array('books' => $books)); Занавес 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
Skunk Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Booz money, как говорил Никсон в Футураме 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 8 минут назад, markimax сказал: После всего "этого" мне кто то может объяснить зачем Даниэль интегрировал twig в opencart ? Мне на ум не приходит ни одного разумного объяснения Может я чего то не понимаю ? Вот честно Так вот же )) Может всеё толпой к нему на форум в тему поддержки 3й версии на тролить всё это дело?)) в гит и т.д. - может остановится пока не поздно.. 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 Для переноса темы из одного проекта в другой, с одой системы в другую 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: Для переноса темы из одного проекта в другой, с одой системы в другую типа портирования? один модуль, шаблон под все движки на свете? один стандарт или я не туда торможу? Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 1 минуту назад, AWARO сказал: один стандарт Условно -да 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 короч опенкарт превращается потихоньку в // вот не по теме опенкарт впихнутый в джумлуhttps://miwisoft.com/joomla-extensions/mijoshop-joomla-shopping-cart Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Ну я так и предполагал Видно у кого то из спонсоров - инвесторов их магазины на twig шаблонизаторе и самописном г.. , решили перевести без потерь на opencart Вот Даниэль и прогнулся Но это то понятно. Я другого не пойму - почему эти "тормоза" и [censored] по умолчанию включены в opencart 3 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Где покупать модули? Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
chukcha Опубликовано: 19 апреля 2017 Автор Поделиться Опубликовано: 19 апреля 2017 7 минут назад, AWARO сказал: вот не по теме опенкарт впихнутый в джумлу там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Deals – адаптивный универсальный шаблон Автор: octemplates Динамичесткая инфострока в шапке + позиция в макете для opencart\ocstore 2x, 3x Автор: Lito911 Единицы Измерения Товара Автор: RoS Opencart Product Search by Image Автор: slavoglo Простой массовый редактор цен. Fast Price Edit Автор: Sha
HyperLabTeam Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Только что, chukcha сказал: там-то почти 100% ОС, в смысле ядра Не знаю как там с ЧПУ, но работает же работает, с него и попал сюда на форум но тормозит жутко, джумла + ещё опенкарт через него там бардак вообще... сео это просто название там.. по сути прост коммерческий ход и всё, как Марк заметил этот твиг тоже такой же ход. В общем всё что от начальной версии до 2.3. делалось - примерно то же самое будет и начиная от 3й версии... А потом потомки дениэля и оффлайн магазин запихают в онлайн и обратно))) засунул руку в монитор и взял с полки че надо Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
RGB Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' в итоге главная страница после свежей установки имеет такую статистику по запросам: Total time 0.5381 seconds | Total queries:99 А в 2.3.0.2 она была "легче" на целых 26 запросов: Total time 0.3941 seconds | Total queries:73 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Разное Курилка 3.0.0.0 или Что нас ждет
markimax Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 2 часа назад, RGB сказал: Посмотрел через профайлер по запросам - в тройке добавились новые типа такого: 0.00429s 15 SELECT * FROM oc_theme WHERE store_id = '...' AND theme = '...' AND route = '...' 0.00315s 11 SELECT * FROM oc_translation WHERE store_id = '...' AND language_id = '...' AND route = '...' Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Скрытый текст foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации Как в рекомендуемых товарах вывести атрибуты? Автор: Kick, 15 марта 2019 opencart 3.0.0.0 0 ответов 684 просмотра Kick 15 марта 2019 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
ocdev_pro Опубликовано: 19 апреля 2017 Поделиться Опубликовано: 19 апреля 2017 14 минут назад, markimax сказал: Лишние запросы это всего ~ 0.075 c А вот все остальное (почти 0.3 c) "сьел" парсинг регулярками шаблонизатор Регулярки оооочень много жрут ресурсов, особенно когда шаблон большой, а его парсят и парсят, парсят и парсят, парсят и парсят ... Показать контент foreach ($this->filters as $pattern => $filter) { $pattern = str_replace('\\*', '(.*?)', preg_quote($pattern, '#'), $count); if ($count) { if (preg_match('#^'.$pattern.'$#', $name, $matches)) { array_shift($matches); $filter->setArguments($matches); return $filter; } } } if (0 == strlen($string) ? false : (1 == preg_match('/^./su', $string) ? false : true)) { throw new Twig_Error_Runtime('The string to escape is not a valid UTF-8 string.'); } $string = preg_replace_callback('#[^a-zA-Z0-9,\._]#Su', '_twig_escape_js_callback', $string); preg_match_all($this->regexes['lex_tokens_start'], $this->code, $matches, PREG_OFFSET_CAPTURE); if (preg_match($this->regexes['lex_block_raw'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lexRawData($match[1]); // {% line \d+ %} } elseif (preg_match($this->regexes['lex_block_line'], $this->code, $match, null, $this->cursor)) { $this->moveCursor($match[0]); $this->lineno = (int) $match[1]; } else { $this->pushToken(Twig_Token::BLOCK_START_TYPE); $this->pushState(self::STATE_BLOCK); $this->currentVarBlockLine = $this->lineno; } if (empty($this->brackets) && preg_match($this->regexes['lex_var'], $this->code, $match, null, $this->cursor)) { ... ... ... И это только одна "миллионная" часть их в коде шаблонизатора Иногда простой регуляркой (одной) сжимаешь код html (очищаешь от лишнего) на выходе и тормоз получается ... а здесь их "миллионы" Просто ***ный стыд... И как это Г можно было встроить в движок...!? Чем дальше копаю версию 3.0 тем больше понимаю, что направление развития платформы достаточно спорное... Скорее всего версия ocStore 3.x будет поставляться с допилом который будет полностью вырубать twig и использовать tpl 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Назад 1 2 3 4 5 6 7 8 Вперёд Страница 3 из 14 Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0
Рекомендованные сообщения