Nik
С нами с 12 февраля 2020; Место в рейтинге пользователей: #418[FAQ] Делаем сниппет-обёртку
Данное руководство предназначено в первую очередь для разработчиков, только начинающих знакомиться с MODX. При разработке сайта они как правило используют уже готовые решения. И часто так случается, что такое решение нужно подогнать под текущую задачу. Самая первая мысль, которая приходит им в голову — изменить тот или иной сниппет. Ведь именно сниппеты отвечают за логику работы. Ну ещё плагины, но новички обычно в них не лезут.
Совсем зелёный разработчик лезет в исходный сниппет и творит там своё колдовство. И безумно довольный выкатывает своё творение заказчику, раздуваясь от своего величия.
Но более осторожный юнец сначала зайдет в сообщество, чтобы поинтересоваться, нет ли такого же решения, но с перламутровыми пуговицами. И случайным образом узнаёт, что править исходный код ни в коем случае нельзя, потому что следующее обновление затрёт все изменения, и что есть достаточно простой способ решить задачу кастомизации. Это сниппет-обёртка.
Совсем зелёный разработчик лезет в исходный сниппет и творит там своё колдовство. И безумно довольный выкатывает своё творение заказчику, раздуваясь от своего величия.
Но более осторожный юнец сначала зайдет в сообщество, чтобы поинтересоваться, нет ли такого же решения, но с перламутровыми пуговицами. И случайным образом узнаёт, что править исходный код ни в коем случае нельзя, потому что следующее обновление затрёт все изменения, и что есть достаточно простой способ решить задачу кастомизации. Это сниппет-обёртка.
Новый тест скорости хостинга для MODX
Предлагаю новый простой тест хостинга, путем заполнения 10 000 INLINE чанков случайными значениями при помощи pdoTools.
Тест работает напрямую через MODX_API_MODE. Никакой лишней нагрузки нет, чистый рендер по всем правилам.
На нашем хостинге тест показывает примерно такие цифры:
Код нужно скопипастить в файл /render.php, который вы создадите прямо в корне сайта. Потом вызываете файл из браузера и смотрите цифры.
Пишите в комментариях, что у вас получается. Желательно также указать, какой у вас хостинг, и сколько платите в месяц — мне очень интересно.
Готовая таблица с упорядоченными данными из комментариев к этой заметке.
Тест работает напрямую через MODX_API_MODE. Никакой лишней нагрузки нет, чистый рендер по всем правилам.
На нашем хостинге тест показывает примерно такие цифры:
0.0002420: Created inline chunk 0.0749481: Total time 3 145 728: Memory usageТестовый скрипт:
<?php
define('MODX_API_MODE', true);
require 'index.php';
$pdo = $modx->getService('pdoTools');
$tpl = '@INLINE <p>[[+val1]] - [[+val2]] - [[+val3]]</p>';
$output = '';
for ($i = 0; $i <= 10000; $i ++) {
$array = array('val1' => rand(), 'val2' => rand(), 'val3' => rand());
$output .= $pdo->getChunk($tpl, $array);
}
echo '<pre>'; print_r($pdo->getTime()); echo '</pre>';
echo $output;
Код нужно скопипастить в файл /render.php, который вы создадите прямо в корне сайта. Потом вызываете файл из браузера и смотрите цифры.
Пишите в комментариях, что у вас получается. Желательно также указать, какой у вас хостинг, и сколько платите в месяц — мне очень интересно.
Готовая таблица с упорядоченными данными из комментариев к этой заметке.
Обновлено 25.04.2016
Добавили PHP 7.0 на modhost.pro. Вот тест скорости для него:0.0001070: Created inline chunk with name "d9ad1bcdc5a530ed83598e35a1357e51" 0.0328310: Total time 2 097 152: Memory usageМинимум в 2 раза быстрее чем PHP 5.
Как не хакать сторонние классы
Бывает, что вы используете какой-то сниппет или компонент, и он немного вас не устраивает. Вам нужно поправить буквально пару строк, но вы понимаете, что при обновлении эти измения пропадут.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.
Как работать с MODX Api
Регулярно встречаю в сети разные велосипеды про то, как подключиться к MODX снаружи для работы с его Api. Даже на официальном сайте это описано сложновато.