План работ
Наши планы
У нас есть множество планов относительно будущего MODx. Некоторые из
них – те, которые более важные полезные и находятся на стадии
реализации – описаны ниже. Имея в виду собственные планы, нам интересно
Ваше мнение. Что бы, на Ваш взгляд, стало бы существенным
усовершенствованием для MODx? Присоединяйтесь к нашему сообществу
сегодня и помогайте строить будущее MODx.
Планируемые нововведения в MODx Revolution 2.0
Кое-что из планов относительно MODx Revolution 2.0. Вы хотели что-то добавить?
- Объектно-ориентированное ядро. Полностью переписано под объектную модель ядро системы MODx.
- Улучшенные
API. Новые, объектно-ориентированные, возможности API, шире
охватывающие ядро MODx, имеющее более последовательную архитектуру.
- Новый
manager. Убираем фреймы и добавляем полностью настраиваемые шаблоны с
использованием AJAX для еще более гибкого управления MODx. Свежий
интерфейс, управляемый новым ядром MODx + Smarty + Ext + MooTools
- Установка
и обновление ядра MODx. Новая, более гибкая программа установки ядра и
средство обновления, сделают все инсталляционные пути 100%
настраиваемыми. Больше никаких проблем с одноименными внешними
директориями и ресурсами.
- Установка пакетов. Средства,
позволяющие легче установить, обновить или перенести настроенный с
помощью MODx контент. Пакеты, с возможностью полностью
автоматизированной установки и обновления, помогут отделить дополнения
от ядра MODx и поспособствуют вашему развитию, предоставляя возможность
импорта/экспорта без потери рабочих компонентов.
- Объединение пользователей и модель безопасности. Теперь нет
разделений между пользователями и менеджерами сайта – все они станут
просто пользователями. То же произойдет и с группами пользователей и
документов.
- Contexts (контексты). Это новая концепция,
которая позволит делить все окружение на домены, поддомены, подсайты,
культурные зоны, специфические web-приложения и т. д.
- Улучшенная
поддержка i18n и i10n. Cultures(культуры) и contexts(контексты) в
связке обеспечат интернационализацию всей структуры и позволят
установить язык, денежные единицы, формат даты/времени и т. п.
- Больше
никаких eval(). Плагины, сниппеты и модули будут подключаться единожды,
и вызываться как функции. Это обеспечит большие возможности,
эффективность, стабильность и повысит уровень безопасности. Тут можно
процитировать создателя PHP Расмана Лендорфа: «If eval() is the answer,
you're almost certainly asking the wrong question.» («Если eval() -
ответ на Ваш вопрос, Вы почти наверняка задаете неверный вопрос»).
- Контролируемые
сессии базы данных. Новый обработчик сессий по-умолчанию обеспечит
больший контроль и предоставляем больше настраиваемых опций, включая
совместимость с web-сервером.
- Улучшенное кэширование.
Новое ядро системы и техника кэширования, помогут уменьшить размер всех
кэшированных файлов и организовать иерархическую структуру папок.
- Кэширование
результатов запросов к БД. Новое ядро также позволяет кэшировать
результаты запросов к базе данных. Что позволит уменьшить загрузку базы
данных, расширяя возможности, что немаловажно для сайтов с большим
объемом трафика.
- Ведение лога ядра. Обеспечивает различные
уровни ошибок и вывод результатов, включая ECHO, HTML и FILE. Вы также
можете использовать это средство в целях проверки лога, лога ошибок,
отладки и т. д.
- Упрощенная терминология. Некоторые основный понятия MODx изменены
для более интуитивного восприятия и краткости, в соответствии с
современной общепринятой web-терминологией. Самые важные из этих
изменений:
- Web-ресурсы. (ранее: документы и ссылки) Любое содержимое, управляемое MODx и доступное непосредственное при помощи URL-адресов.
- Элементы
контента. Представляют собой элементы, определяющие исходные ресурсы,
находящиеся в базе и управляемые MODx, которые будут обработаны и,
опционально – выведены на страницу.
- Теги
контента. Новое название для новых и существующих тегов, которые
являются исполняемыми, но не относятся к элементам контента; т. е. они
не определяют исходное содержание страницы.
- Фильтрование
контента. Новые фильтры ввода и вывода - классы PHP, которые заменяют
текущую концепцию виджетов и @связей MODx, так же как и расширения,
образованные добавлением PHx-форматирования. Это дальнейшее расширение
при помощи PHx, позволит обращаться к любому элементу содержимого.
- Фильтры ввода. Видоизменяют исходное содержимое и свойства/параметры перед обработкой.
- Фильтры вывода. Видоизменяют содержимое после обработки перед выводом.
- Улучшенный
анализатор контента. Особенностью его является полная рекурсивность,
независимость исходной обработки от неэффективных и менее гибких
регулярных выражений, которые и используются сейчас. Можно
процитировать Джейми Завински «Некоторые люди, сталкиваясь с проблемой,
думают: «понятно, здесь можно использовать регулярные выражения».
Теперь у них две проблемы.
- Любой элемент, представленный тегом, может быть кэширован. Для этого необходимо использовать символ «!». Например:
[[!snippet]] или [[!$chunk]] или [[!*content]]
- Любой тег может содержать вложенные теги. Например:
[[~[[++site_start]]]] или [[!snippet? &tpl=`[[!getTemplate]]` &msg=`[[*introtext]]`]]
Общий формат тегов. Для упрощения логики парсинга (анализа), улучшения
работы и избежания хаоса, все теги имеют единый формат: [[тег]].
|
Старый формат |
Новый формат |
| Элементы контента |
| Шаблон |
нет тега |
нет тега |
| Переменная шаблона |
[*имя_переменной*] |
[[*имя_переменной]] |
| Чанк |
|
[[$имя_чанка]] |
| Сниппет |
[[имя_сниппета]] |
[[имя_сниппета]] |
| Плагин |
нет тега |
нет тега |
| Модуль |
нет тега |
нет тега |
| Теги контента |
| Плейсхолдер |
[+имя_плейсхолдера+] |
[[+имя_плейсхолдера]] |
| Ссылка |
[~ссылка~] |
[[~ссылка]] |
| Системный параметр |
[(имя_параметра)] |
[[++имя_параметра]] |
| Язык |
нет тега |
[[%ключ_языковой_строки]] |
- Еще
более расширяемый, еще менее уязвимый. Новое объектно-ориентированное
ядро позволит обеспечить удобное использование большинства основных
возможностей без изменения кода ядра. Это поможет защитить ваши
достижения в области модернизации.
- Web-ресурсы. Можно
легко объявить собственный класс, что бы определить и использовать
собственные ресурсы, из web-сервисов, в AJAX-процессор, в обработчик
мультимедийного контента или даже проводить интеграцию со сторонними
приложениями.
- Элементы контента / теги. Можно определять
собственные элементы контента и теги, которые будут обрабатывать
стороннюю информацию и возвращать результат. Использовать их можно как
любой другой элемент контента. Например:
[[-bobsCustomElement]]
- Парсер контента. Позволяет определить собственный класс анализатора, что бы расширить стандартные возможности парсинга.
- Обработка запросов / ответов. Пропускает или отвергает запросы/ответы к ядру, вызывающие методы.
- Обработка сессий. Позволяет объявлять собственные классы для обработки пользовательских сессий в стандартах PHP.
- Обработка ошибок. Позволяют создавать собственный класс для обработки ошибок PHP.
- Частичное кэширование страниц. Обеспечивает большие возможности кэширования. Позволяет более эффективно использовать кэш.
- Кэширование результатов запросов к БД. Обеспечивает кэширование результатов выполнения запросов к базе данных.