Во-первых register globals к $GLOBALS никакого отношения не имеет – учите PHP
Каюсь, php знаю плохо... Буду стараться восполнять пробелы...
А все-таки, верно ли мне интернетом навеяло,.. что какую-то опцию надо проверять, перед тем, как регистрировать глобальную переменную?
В коде, кстати, множество ошибок.
Код - только иллюстрирует идею... Сама идея-то, надеюсь, правильная.
во-вторых если в разных сниппетах используются разные вызовы SQL, то, естественно, кэшировать их не имеет смысла
Поразмыслил.. Посчитал вызовы... В самом деле - почти все запросы на странице будут различными.
Т.е. задача неактуальна... и реализация откладывается... А обсуждение оставляем для всеобщего обозрения...
а что если вынести код с запросом в отдельный файл, и делать require_once "этот отдельный файл" в своих маленьких сниппетах?
Кстати, тоже неплохая идея. Но ведь мало, просто, выполнить sql-запрос. Надо еще где-то и сохранить результат? А тут, как ни крути, когда начнешь думать, куда же сохранить результат, получится та же реализация что и обсуждалась выше...
Заодно, раз уж затронули тему, задам
вопрос знатокам MODX:
Будут ли чем-нибудь отличаться вызовы сниппетов в синтаксисе [[]] и [!!] на некешируемой странице? И чем они, в принципе, отличаются? (особенно, если сниппеты с параметрами?)
У меня есть какие-то подозрения, что MODX транслирует вызовы сниппетов типа [[]] во что-то типа required_once, а вызов типа [!!] - во что-то типа required. Может быть, гуру MODX, объяснят, что тут к чему?
Про ускорение выполнения SQL-запросов, вспомнился еще один стандартный подход к этому вопросу, т.н. метод "пула соединений". Смысл в том, что основное время обмена данными между клиентом и сервером тратится на открытие нового сетевого соединения. И, чтоб все работало быстрее, набирается некий пул постоянно открытых клиент-серверных соединений. В нашем случае клиент - это apache+php, а сервер - mysql.
Тема слишком богатая. Но здесь ее обсуждать нет смысла, поскольку вопрос выходит за рамки modx, и, даже, за рамки php. Отмечу только, что это непростое программирование на уровне сокетов-буферов-очередей-семафоров-асинхронной обработки. И php совершенно для этого не предназначен...