Что мы знаем о MODX 3 на данный момент? Modx фреймворк
Фреймворки MODX
Цель этого поста — презентовать какие существуют фреймворки, для чего они используются вместе с подборкой бесплатных из интернета. Это будет полезно для дизайнеров и разработчиков, которые только начинают открывать новые ресурсы и возможности, а также установка новых концепций, абстрактных в том числе.
Что такое фреймворк?
Фреймворк — это стандартизованный набор концепций, практик и критериев для работы с общим типом проблем, который может быть использован как руководство по помощи и решения новых проблем схожей природы.
В мире веб-дизайна, фреймворк определён как * пакет скомпонованный из файлов и папок стандартизированного кода (HTML, CSS, JS документов и т.д.)*, который может быть использован для разработки вебсайтов или как базис для построенния сайта.
В двух словах нет нужды изобретать велосипед.
Целью фреймворка является обеспечение общей структуры, чтобы разработчикам не приходилось делать всё сначала и можно было использовать разработанные куски кода.Сколько существует типов фреймворков?
Есть в основном два типа фреймворков: бекенд и фронтенд (это разделение записано основываясь на том какому логическому слою он принадлежит: представления, применения или приложения.
Это важно понимать, что фреймворки — это концептуальное понятие: предварительно готовые стандартные наборы, с которых можно начать работу. Концепция фреймворка может быть применена к различным процессам в сети: программистский слой, который соединяет базу данных с содержимым сайта и использует пхп-язык и дизайнерский слой, где контент должен быть представлен в HTML документах с определёнными CSS стилями, чтобы он прекрасно просматривался в браузере.
Может быть также в бекенде (набор файлов с библиотеками для доступа к базе данных, структуре шаблонов, управление сессиями) или фронтенде. Мы сосредоточимся на фреймворках фронтенда.
Фронтенд Фреймворки (или CSS фреймворки)
Фронтенд фреймворки обычно состоят из пакета структурированных файлов и каталогов стандартизированного кода (HTML, CSS, JS документов и т.д..)
Обычными компонентами являются:
- CSS исходный код для создания сетки: позволяет разработчику спозиционировать различные элементы, которые формируют дизайн сайта в простой и живой манере.
- Типографические стили для HTML элементов.
- Решения для случаев несовместимости браузеров, чтобы сайт отображался корректно во всех браузерах.
- Создание стандартных CSS классов, которые могут использоваться для стилизации дополнительных компонентов пользовательского интерфейса.
По поводу отзывчивых фреймворков: В данный момент идёт рост популярности техники отзывчивого веб дизайна: разработка вебсайтов, которые могут адаптироваться к различным разрешениям мобильных устройств и настольных и он ведёт к росту количества разнообразных отзывчивых фреймворков. Все они решают одну и ту же проблему создания отзывчивого сайта. Эти фреймворки предлагают отзывчивые решения прямо из коробки.
Выбор фреймворков
Всередине CSS фреймворков, мы можем провести разделение между двумя типами фреймворков согластно их сложности: простые фреймворки и полные фреймворки. Это разделение субъективно и не значит ,что одни лучше других, просто они дают разное решение в зависимости от степени требуемой сложности и (или) гибкости.
Простые фреймворки
Их часто называют просто «системы разметки», но тем не менее они фреймворки. Они предлагают стили с системой колонок для размещения различных элементов согластно установленного дизайна.
Как выбрать правильный?
Выбирая правильный фреймворк для своего сайта — непростая задача из-за нескольких причин:
- Каждый сайт — разный и требует разные характеристики. Используя очень сложный фреймворк для одной страницы может привести к адекватному результату, но такое не часто встретишь на многих сайтах.
- В данный момент нет больших различий — все они достаточно полны и легки в использовании.
В то же время мы хотим дать вам несколько наставлений — держите их в уме, когда будете выбирать подходящий фреймворк.
- Скорость установки: некоторые очень просты для установки и начала использования. Другие требуют времени для конфигурирования.
- Лёгкость понимания: понять некоторые иногда очень сложно, другие наоборот понятны с самого начала.
- Опции: некоторые фреймворки сложнее других и предлагают больше конфигурационных настроек, виджетов и элементов интерфейса. Они позоваляют вам делать классные вещи с вашим сайтом.
- Интеграция с другими системами
- Лучшая долговременная поддержка: Некоторым цифровым проектам нехватает поддержки с течением времени и она прекращается. Лучше использовать те, которые предусматривают долговременную поддержку. Многие из таких поддерживаются компаниями, которые разрабатывают продукты на рынке.
Преимущества и недостатки использования фреймворков
Преимущества
- Ускорение процесса создания макетов
- Чистый и аккуратный код
- Решения общих CSS вопросов
- Совместимость браузеров
- Хорошие практики изучения
- Единственная процедура решения общих проблем делает поддержку различных проектов более простой.
- Польза при совместной работе
Недостатки
- Смешивает контент и представление
- Неиспользованный код остаётся
- Замедляется кривая обучения
- Вы не учитесь делать всё самостоятельно
Хорошо ли использовать фреймворк?
Не обязательно. Разработчик должен сам принимать решение использовать ему или нет фреймворк и какой. Это зависит он нескольких вопросов. Фреймворки — это ресурсы, которые могут быть исключительно полезны для многих людей, но это не значит, что они могут быть полезны для вас. Теперь вы знаете, что они существуют и их преимущества и недостатки.
Рекомендуемые статьи: 15 CSS фреймворков
modx.ws
MODx - фреймворк нового поколения
27 Октября 2009 22:13 ::: Просмотров 6217 ::: Комментариев 1
MODx - среда разработки сайтов и система управления контентом (CMF), написана на PHP & MySQL, открытый (open source) проект, созданный и развивающийся благодаря группе талантливых людей. Частенько встречал отзывы, что мол позволяет удобно и быстро работать написав минимум кода, сайт поднять можно за пару часов с нуля. Вот решил посмотреть поближе, что за зверь.
Информации в интернете не слишком много, на русском есть пара хороших ресурсов. На MODx.ru есть даже небольшое пошаговое руководство, написанное живым языком, знающим человеком - мне понравилось :). Сам прошелся по шагам, выполнил задания - да, люди говорят правду. Впечатления очень положительные. Если, например, судить относительно фреймворка Codeigniter, на котором я в настоящее время работаю, MODx как бы следующая ступень развития, следующий шаг эволюции. Если ознакомится с API, станет ясно, что разработчики заложили огромный потенциал в систему, изобретать практически ничего не надо. Большое число проектов действительно можно поднять (программно, естественно) за очень короткий срок. Я просто восхищен! Даже возникло неодолимое желание перевести текущие проекты на MODx. Наверно не преувеличу - гениальная конструктивная задумка, продуманная архитектура, грамотный код (во всяком случае, там где я смотрел) - wordpress рядом не валялся, имхо.
Есть некоторые вещи, мне не очень понравившиеся - код сниппетов (части PHP кода), чанков (фрагменты HTML-кода) хранится в базе, они же плюс некоторые другие вещи редактируются непосредственно в MODx - прощай, любимый редактор/IDE с подстветкой кода и прочими плюшками. При количестве страниц от 5000 как будто начинаются лаги, но для большинства обычных сайтов это не критично. Мета-теги и ключевые слова нужно задать заранее на спец странице (смысл мне не понятен). Ну и среди всего многообразия специальных переменных я не нашел ту, которая бы показала размер используемой памяти скриптом :)
Вобщем, рекомендую ознакомиться с MODx. Мои впечатления в целом самые радужные, отрицательных отзывов не слышал, коммьюнити доброжелательное.
vladname.ru
MODX: лучшая CMS, которой вы никогда не пользовались
CMS MODX – система управления контентом, которая была выпущена в 2005 году. В 2009 году, она была представлена под кодовыми именами Evolution и Revolution. Версия Evolution была основана на оригинальном коде, в то время как Revolution была полностью переписана с нуля. Наша сегодняшняя статья посвящена по большей части Revolution.
В консоли управления MODX вы сможете создавать собственные плагины и скрипты, и при этом иметь доступ к ассортименту платных дополнений.
Более подробная информация представлена на главной странице сайта MODX и в разделе «О нас».
Знакома ли вам эта CMS?
MODX – это больше фреймворк для разработчиков, и уж точно не как готовое решение для любителей «конструкторов». Это не лучший вариант для тех, кто не знает PHP и HTML. Здесь нет конструкторов меню или готовых модулей, которые можно перетащить в шаблон.
Я бы сказал, что MODX – больше CMF (content management framework, «фреймворк для управления контентом»), а не CMS. В нем можно использовать API для управления скриптами, без готовых шаблонов страниц и постов.
Копнём глубже
CMS MODX шаблоны разработаны на PHP. Она работает на всех популярных серверах, включая Apache, IIS, Lighttpd и nginx. Она использует MySQL, а в качестве ORB (object-relational bridge, «объектно-реляционный мост») — xPDO.
Консоль управления в MODX реализована при помощи ExtJS, Smarty-шаблонов, и собственного API. можно самостоятельно редактировать консоль управления и панели инструментов.
Собственные меню, полный контроль над ACL (списки контроля доступов) – все это в вашем распоряжении. Но для полноценной работы с функционалом потребуются определенные навыки и знания.
Платформа MODX поддерживается компанией MODX, LLC. У нее есть и другие продукты, включая облачный хостинг и консалтинговые услуги. Выбирая MODX, можно быть уверенным в надежности, так как компания вряд ли внезапно исчезнет или прекратит поддержку своего проекта.
Обучение и документация
MODX предлагает отличную документацию, включая видеоролики, книги, а также сообщество на форуме. Я думаю, вам будет полезно для начала ознакомиться просмотреть несколько обучающих видео и пробежаться по документации, чтобы хоть немного вникнуть в суть.
Установка
MODX можно установить, только скачав ZIP-архив и загрузив его содержимое на сервер:
Скачиваем MODX
В ядре данной платформы отсутствуют автоматические обновления. Но есть дополнение, которое позволит без труда обновляться до свежих релизов. Кстати говоря, все дополнения также просто обновляются через консоль.
Управление проектом происходит через GitHub, и там всегда можно найти свежие скриншоты и релизы проекта. Я рекомендую скачать самую последнюю версию платформы и загрузить ее на свой сервер.
Чем примечательна CMS MODX
CMS MODX Evolution – это нечто вроде движка для продвинутых пользователей. С самого начала перед вами будет пустой шаблон, над которым придется поработать, а также сотня настроек и функций, с помощью которых можно полностью адаптировать платформу под собственные проекты. Здесь нет никаких конструкторов, помощников, drag and drop интерфейсов, виджетов и прочих удобств.
Если вам нравится писать код вручную, MODX вам точно подойдет. Эта CMS позволяет достаточно быстро обучиться ручной переработке сайтов.
Если вам нужно получить мультиязычную, многосайтовую платформу с раздельным контентом и отдельными уникальными панелями управления для клиентов, то вы точно оцените то, на что способна MODX.
Её можно использовать для создания API, форумов, блогов, корпоративных сайтов, сайтов-визиток! Здесь может быть несколько языков, расширенные настройки прав доступа и безопасности, а также возможность настраивать административные панели под каждого клиента.
Создание веб-страницы
Для формирования веб-страницы в MODX используется стек элементов. Так называемые шаблоны, сниппеты, фрагменты кода, переменные шаблона, а также собственная система тегов:
В шаблонах при помощи тегов можно использовать пользовательские данные, данные о текущей странице, метаданные, глобальные системные настройки, переменные, фрагменты кода, сниппеты или заглушки.
Использование MODX предполагает работу над HTML-шаблоном, а также парсинг HTML-кода в готовые фрагменты, а PHP-кода — в сниппеты. Также в шаблонах можно использовать любые произвольные поля. Далее после MODX CMS установки нужно создать ресурс, привязать его к шаблону, заполнить нужные поля, и на этом все!
Resource (ресурс) — обозначение конечной точки. Это то, что указывается в URL-адресе. Тип содержимого ресурса может быть отличным от HTML (например, PDF или двоичные данные). Можно установить принудительное скачивание контента или же отображать его прямо в браузере. Ресурс может даже вести на файл или на внешнюю страницу, либо перенаправлять посетителя на другой контент в пределах сайта.
Template (шаблон) — это рамка (фрейм), в которой отображается контент. Все ресурсы привязываются к шаблону.
Chunk (фрагмент кода) — это HTML или JS-код с возможностью повторного использования.
Snippets (сниппеты) используются для PHP-кода. У сниппетов есть доступ к ядру MODX и ко всем его объектам.
Сниппеты могут запускать фрагменты, и наоборот. Шаблоны и ресурсы могут запускать и то и другое. Это четыре основных составляющих, при помощи которых можно формировать веб-страницы.
Plugin (плагины) способны расширять функционал ядра.
Template Variable (переменная шаблона) — это любые произвольные данные, которые могут понадобиться внутри шаблона, и для которых можно указать ресурс. Например, можно использовать переменную шаблона для произвольного изображения баннера на странице, но потом каждый ресурс может привязать иное изображение для отображения шаблоне. Это что-то вроде произвольных полей WordPress, но с большим набором функций.
Можно комбинировать любые из этих элементов при помощи категорий (Categories). Не забывайте их использовать, чтобы фрагменты кода и сниппеты были организованы, и ими было проще пользоваться.
Знакомство с административной панелью (Manager)
Админ-панель CMS MODX Revolution основывается на ExtJS. За счет этого в ней можно работать с drag and drop интерфейсом, формами, динамическими таблицами, контекстным меню для правой кнопки мыши и многим другим.
Удобная функция управления позволяет указывать источники медиа-ресурсов, которые также привязываются к правам доступа. У вас могут быть такие ресурсы, доступ к которым клиент получает только после авторизации. При этом конкретные ресурсы для определенных пользователей могут быть доступны только в режиме read-only.
Настройки системы основываются на пространстве имён. Можно создать пространство имён для самого себя и отдельно для того, чтобы использовать его в каком-то из элементов приложения.
Административная панель не такая уж и сложная, просто требуется некоторое время на знакомство и изучение всех функций и возможностей:
Контекст
Хочу обратить ваше внимание на пункт Website. Это «Контекст», который отвечает за то, что видят пользователи, когда попадают на ваш сайт. У контекстов могут быть абсолютно разные древа ресурсов, права доступа, язык и т. д. По умолчанию, контекст Mgr скрыт из древа.
Контексты можно расценивать как полностью отдельные сайты, хотя даже крупные и сложные ресурсы редко пользуются преимуществом от создания дополнительных контекстов. Одно из распространенных применений контекстов заключается в создании на сайте раздела для зарегистрированных пользователей. Все, что от вас требуется, это запретить гостям видеть определенный контекст.
Можно использовать контексты как вам заблагорассудится. Но будьте готовы к тому, что если пользователь авторизован в одном из контекстов, это совсем не значит, что у него будет доступ ко всем другим. Если нужно сделать одну форму авторизации для всех контекстов, то понадобится немного поработать.
Контексты можно использовать для отделения разделов сайта. Некоторые используют их для разделения версий сайта на разных языках.
Шаблоны и теги
Я уже упоминал о том, что в CMS MODX есть встроенная система тегов шаблона. Давайте кратко ознакомимся с ее.
Каждый тег открывается и закрывается двумя квадратными скобками [[ … ]].
Специальные символы определяют, что именно используется: фрагмент кода, ресурсы или системные настройки. Как ими пользоваться:
[[*…]]: звёздочка отвечает за ресурсы. То есть, за конкретные данные, используемые текущим источником. Например, заголовок страницы или основной контент. Аналогичным образом можно использовать переменные шаблона.[[++…]]: осуществляется поиск системных настроек, будь то site_url или произвольная настройка вроде company_phone1 (если до этого вы ее создали).[[~##]]: этот тег генерирует URL для ресурса по ID (например, [[~32]]).[[$…]]: этот тег извлекает HTML-код из фрагмента.[[…]]: тег без спецсимвола приведет к запуску сниппета.[[%…]]: выводит языковую строку.[[-…]]: комментарий к коду MODX.[[!…]]: восклицательный знак указывает MODX на то, что не нужно кешировать вывод данного тега; его нужно использовать в дополнение к предыдущим символам. Если вы вызываете [[!$SomeChunk]], то вывод будет обрабатываться каждый раз вместо того, чтобы выводиться из кеша. Я уже говорил, что в MODX CMS функциональные возможности входит встроенная система кеширования?
Параметры тегов
К тегам можно применять параметры и фильтры и таким образом изменять их вывод. Например, можно добавить несколько параметров к автоматически сгенерированному URL-адресу:
<a href="[[~17? §ion=`food` &sort=`asc`]]">Здесь</a>Из примера видно, что синтаксис с применением параметров слегка отличается от параметров в привычной строке запроса URL. Вопросительный знак обозначает начало списка параметров, и каждый параметр начинается со знака &, а значение заключаются в обратные кавычки.
Вывод приведенного выше тега будет выглядеть следующим образом:
<a href="yourpage?section=food&sort=asc">Здесь</a>Сниппет также можно снабдить дополнительными данными, если запустить его подобным образом:
[[!MyCustomSnippet? &input=`something tasty`]]Мы запускаем сниппет с названием MyCustomSnippet, и задаем ему дополнительные данные через поле input со значением something tasty. В PHP автоматически создается переменная с именем $input, которую позже можно использовать в сниппете.
Теги можно встраивать друг в друга. Один из популярных тегов выглядит следующим образом:
<a href="[[~[[*id]]]]">Ссылка на страницу</a>Здесь есть указание ресурса [[*id]], встроенное в тег ссылки [[~#]]. Внутренние теги парсятся до внешних.
В иных случаях можно запускать HTML-код и выводить динамические данные, извлекаемые из сниппета. Выглядеть это будет так:
[[$AChunk? &data=`[[!GetTheData]]`]]Тег chunk использует сниппет для того, чтобы знать, о каких именно данных идет речь.
Так как приведенный выше тег запускает фрагмент, состоящий только из HTML-кода, то как он считывает значения данных? Они доступны автоматически благодаря тегу placeholder:
<h3>Заголовок</h3> <p>[[+data]]</p>Заглушки (placeholders) чаще всего используют именно так.
Фильтры вывода
В CMS MODX Revolution теги принимают не только параметры. К ним также можно применять фильтры вывода. Фильтры запускают код постобработки вывода. Можно образовать цепочку из нескольких фильтров. Самый простой пример, приведенный ниже, изменяет регистр строки:
Фильтр начинается с двоеточия, и должен быть указан до параметров. Посмотрите, как выглядит цепочка из нескольких фильтров:
[[SomeSnippet:ucase:replace=`this==that`? ¶m1=`Go big`]]В данном примере результат объявления Snippet сначала конвертируется в верхний регистр, а затем запускается специальный фильтр replace, который и меняет положение дел. После фильтров идет перечисление параметров, которое начинается с вопросительного знака.
Стандартных фильтров не так уж много, и ознакомиться с ними можно здесь.
Любой сниппет можно применять как фильтр. Для этого нужно использовать название сниппета в качестве фильтра:
[[$CallingChunk:mySnippet]]Какой бы HTML-код ни отправлялся с помощью CallingChunk, у mySnippet будет к нему доступ, и его можно будет изменять. Значение $CallingChunk доступно в PHP внутри переменной $input, где вы получите в ответ отредактированное значение (подробнее об этом можно узнать здесь).
Также фильтры можно применять для создания полноценной логики «if then else».
Если и этого недостаточно
В сайтах на MODX CMS можно распределять контент по категориям, выстраивать отношения элементов в формате parent/child, группировать контент в целях безопасности, создавать плагины для валидации данных, которые вносят ваши пользователи.
Также можно редактировать типы контента и MIME-данные, расширения страниц (использовать .html или нет), а в качестве источника медиафайлов использовать библиотеку Amazon S3.
Редактировать все можно как в формате простого текста/HTML-кода или ради удобства установить дополнения вроде TinyMCE, CodeMirror или ACE. Здесь даже есть свой редактор для Markdown. Это уже не говоря про расширения для отслеживания редакций и экспорта кода для последующего использования в других сайтах на MODX.
У элементов тоже есть свойства, напоминающие системные настройки, которые предназначены исключительно для конкретного элемента. Так что, если вы создали сниппет на PHP, то его свойства можно использовать для создания стандартных настроек для подобных модулей.
В MODX CMS админке переменные шаблонов можно распределять по категориям, а затем использовать отдельными группами при редактировании ресурсов. Это удобно, когда нужно создавать произвольный контент, который пользователи впоследствии смогут изменять.
Недостатки
Revolution демонстрирует нам опыт разработчиков, но при этом не задействует некоторые современные PSR-стандарты типа автоматической загрузки или пространства имён.
MODX действительно многофункциональна, безопасна и готова к масштабированию. Однако вы, скорее всего, часто будете сталкиваться с критикой от многих разработчиков.
Еще одна проблема заключается в использовании ExtJS. Этот фреймворк хорош, но в MODX используется его устаревшая версия. И обновить ее нельзя, так как это нарушит поддержку множества сторонних дополнений.
Не считая этих основных недостатков, единственные сложности, с которыми я сталкивался при работе с MODX, заключаются в настройке платформы на серверной стороне. Этой проблеме посвящена отдельная ветка на официальном форуме системы.
В завершение
В этой статье я попытался предоставить как можно больше информации об этой малоизвестной, но крайне интересной CMS.
Как и любой другой инструмент, эта платформа подходит не для всех случаев. Я не буду рекомендовать CMS MODX технически не подкованным людям. Но если вы разработчик с хорошим опытом, и вам необходимо предложить клиентам максимально защищенное решение, то это подходящий вариант.
Если нужна полная свобода с точки зрения дизайна, и у вас есть навыки в разработке, то рекомендую попробовать MODX в действии!
Перевод статьи “MODX: The Best CMS You’ve Never Used” был подготовлен дружной командой проекта Сайтостроение от А до Я.
www.internet-technologies.ru
Что мы знаем о MODX 3 на данный момент? / Хабр
Несколько недель назад ведущий архитектор Джейсон Ковард (Jason Coward, «opengeek») поделился своим видением о будущем MODX на площадке Medium. Основываясь на этой информации, а также на других обсуждениях в сети, что мы знаем о MODX 3? Каков его статус, и когда мы можем увидеть что-то вживую?Честно говоря, у нас пока нет точных ответов. Есть только некоторые части информации, которые мы можем сложить вместе. Поскольку MODX 3 еще попросту не создан, существует множество допущений и «продвинутых» предположений. MODX 3 – это долгосрочный проект, который только запускается.
Почему нам все равно нужен MODX 3?
Множество людей отлично пользуются текущей версией MODX. Система позволяет дизайнерам и фронтенд разработчикам создавать полностью уникальные сайты с минимальными усилиями и изменениями ядра в отличие от некоторых конкурентов. Даже в текущей версии разработка сайтов будет простым и полностью осуществимым делом в течение многих последующих лет. Очень мощный язык шаблонов и элементов, дополнительные поля (TV) и расширения – все это уже готово для использования в будущем.Возможно, наибольшая причина, почему нам нужен MODX 3, – это просто число. С целью очищения унаследованного кода и предоставления разработчикам улучшенных средств, соответствующих стандартам отрасли, системе MODX будут нужны критические изменения. А поскольку MODX следует принципам семантического версионирования, это означает, что мажорная версия должна увеличиться в момент реализации критических изменений. Для MODX Revolution установлена версия №2, значит, нам будет нужна версия №3.
Так почему же нам нужны критические изменения, если текущая версия MODX все еще очень актуальна? Я бы сказал, это нужно для того, чтобы MODX следовал в потоке изменений мира PHP. Сообщество PHP становится более профессиональным и стандартизированным (в частности, благодаря The Framework Interoperability Group – группе концепции совместимости и инициативам вроде PHP: The Right Way – PHP: правильный путь) с впечатляющей скоростью в последние несколько лет. Включаясь в это движение, код ядра MODX может стать намного более классным (читай: стабильным, тестируемым и, возможно, меньше по объему). И наоборот, MODX стал бы намного более привлекательной платформой для других разработчиков на PHP.
В мире разработки критические изменения происходят постоянно. С исключительным прыжком от Evo к Revo MODX стал на самом деле стабильнее и продолжал развиваться в прошедшие года, но с определенных точек зрения критический релиз должен произойти, чтобы превзойти все то, что позволяет существующий код.
Синдром «это придумали не мы»
Во многих случаях MODX был разработан при использовании концепции «неприятия чужой разработки» (тенденция сознательно или инстинктивно игнорировать все инновации, которые происходят за пределами организации – прим. переводчика), являющейся не лучшим паттерном проектирования. В основном это означает, что если ранее каждая часть кода была разработана внутри сообщества MODX, то в будущем могут быть использованы более стандартизированные библиотеки, которые разработаны внешними сообществами. Благодаря Composer и Packagist, такое изменение произошло внутри сообщества PHP в последние годы, что позволило максимально просто использовать код внешних разработчиков, а также ускорило рост отдельных библиотек, выполняющих исключительно хорошо одну, четко определенную задачу.Подключая такие внешние библиотеки сторонних разработчиков, становится возможным разрабатывать надежные приложения быстрее и лучше, используя преимущества полностью протестированного кода отдельных модулей (юнит тесты). Поскольку сейчас в MODX нет никаких полезных юнит тестов (хотя все же существует некоторое движение), это имеет большое значение с точки зрения архитектуры и качества кода.
Приведу некоторые примеры модулей, которые были разработаны внутри команды MODX ранее до использования внешних библиотек:
- Журналирование. На данный момент существует удобный метод $modx->log(), однако при изменении данного метода в соответствии с поддержкой интерфейса PSR-3 разработчики смогут сбрасывать записи лога в различные системы журналирования, например, в такие, как Monolog. Система Monolog предоставляет огромное количество впечатляющих возможностей по управлению логами, и когда MODX начнет поддерживать PSR-3, можно будет поддерживать любые из них без изменения ядра MODX.
- Маршрутизация. Существуют библиотеки, которые могут делать довольно крутые штуки с трансформированием запроса в правильный ответ. Смотрите раздел о фреймворке Slim ниже.
- Система шаблонов. Честно говоря, мне действительно нравится язык шаблонов в Revolution, но, возможно, использование чего-то более «стандартного» наподобие Twig могло быть интересным улучшением. В любом случае это снизит кривую обучения для многих людей, поскольку Twig используется во многих других проектах.
Это только самые первые вещи, которые приходят на ум, когда мы говорим о повторном использовании готового внешнего кода.
Что такое Slim и зачем его использовать?
Во второй части серии своих статей «Поддерживая MODX в актуальном состоянии», Джейсон отметил фреймворк Slim (версия 3) как наиболее вероятного кандидата для использования в ядре MODX. Это не прошло незамеченным – многие люди начали рассматривать Slim, выясняя, что это такое и как он работает.Вот что нам нужно знать о Slim:
- Slim – это маршрутизатор. Он трансформирует Запросы (например, GET /manager/resource/update) в Ответ (например, в форму для обновления ресурса).
- Slim поддерживает паттерн Middleware (промежуточное программное обеспечение). При использовании данного паттерна вы по существу получаете множество слоев, которые обрабатывают каждый отдельный запрос, а также ответы с возможностью менять их до того, как они достигнут следующего слоя. Техническое объяснение паттерна Middleware можно найти здесь. Паттерн Middleware – это очень эффективный путь для расширения поведения. Slim 3 фактически поддерживает стандарт PSR-7 (черновик) из PHP FIG в его реализации Middleware, что означает, что любой middleware-код с поддержкой паттерна PSR-7 может быть спокойно использован вместе с Slim 3.
- Slim 3 пока еще находится в разработке; иными словами, он еще не готов для работы в реальном производстве, но похоже, код Slim 3 становится стабильным.
Предположительно, Slim займет место текущих обработчиков запросов и ответов в MODX. Учитывая возможность добавления middleware-кода, это привело бы к крайне гибкой и мощной системе.
Что насчет Менеджера и ExtJS?
Если вы спросите случайную группу MODX-разработчиков об их самой нелюбимой части системы, скорее всего, это будет ExtJS (или в более общей форме – «Менеджер»). На данный момент пока не существует определенного направления для Менеджера, о котором я бы знал, но привязка к ExtJS 3.4 – это явно не то, что должно произойти. ExtJS 3 очень устарел, он недостаточно быстрый и не обеспечивает должной поддержки мобильных устройств. Более того, ExtJS 3.4 больше не обновляется, поскольку ExtJS 6 уже доступен в раннем доступе.Так что хотя мы пока не знаем, как будет выглядеть Менеджер или на чем он будет построен, мы можем быть вполне уверены, что это не будет ExtJS 3.
Но что же мы знаем?
Учитывая выбор Джейсона в виде Slim как библиотеки ядра, его работы над неким проектом Tacit («высокопроизводительным RESTful фреймворком», основанном на Slim), а также некоторые обсуждения в различных IRC каналах и Slack, наиболее похоже, что следующий Менеджер получит RESTful API в качестве своей основы. Текущий Менеджер также обладает API, но его структура не полностью стандартизирована, а местами направлена именно на то, что от него ожидает ExtJS. Определенно, это не RESTful.
При переходе на RESTful API в качестве основной службы бекенд и интерфейс будут дополнительно разделены с точки зрения кода. Это должно позволить проще разрабатывать по-настоящему уникальные Менеджеры, причем делать эти две части платформы независимо друг от друга. Дизайнеры могли бы сфокусироваться на разработке интерфейса Менеджера третьей версии, а разработчики тем временем работали бы над надежным API.
Что дальше?
Прямо сейчас Джейсон работает над долгожданной третьей частью своей серии статей о будущем MODX. В этой части он поделится своим видением на тему устойчивости – в основном, взаимодействия с базой данных. Для архитектуры MODX это очень важное решение, поэтому Джейсон готовит несколько возможных вариантов перед публикацией результатов.На данный момент основной фокус MODX – это версия 2.3 и приближающаяся версия 2.4. Выпуск MODX 3 обещает стать захватывающим и привлекательным, так что важно потратить некоторое время для выработки решений перед определением основ новой революции в MODX.
habr.com
Профессиональный фреймворк для создания креативных сайтов
Что такое MODX ?
MODX бесплатный фремворк, что используется для создания сайтов, написанный на языке PHP, сохранение информации происходит в базе данных MySQL или MS SQL. Система управления содержимым MODX устанавливается на большинстве WEB-серверах(IIS, Apache, Lighttpd, nginx и Zeus) и является кросс-платформенной и кросс-браузерной, что дает возможность реализации серьезных технических решений в разработке сайтов на MODX. Платформа популярна среди разработчиков из-за своей доступности, простоты и легкости написания кода. Разработка дизайна сайта для модикс, верстка всего сайта на MODX или отдельного шаблона страницы, наполнение сайта превращается в приятный и интересный процесс с системой управления контентом MODX.
Преимущества MODX:
- Сайты на MODX полностью защищены и в 100% безопасности и это все благодаря настойчивой работе разработчиков, которые регулярно мониторят код MODX.
- Платформа MODX наиболее совместима с WEB-серверами.
- Сайт создан на MODX удобен в администрировании (введен механизм с генерированием каталогов, есть возможность гибкого контроля метаданных, никакой проблемы с разграничением прав доступа).
- Система MODX позволяет напрямую работать с HTML кодом, помогает контролировать всю информацию практически не прилагая особых усилий.
- MODX позволяет воплотить любую вашу идею дизайна сайта абсолютно не ограничивая ваше творчество.
- Благодаря системе кэширования MODX информация обрабатывается очень быстро, таким образом ускоряя загружение страниц сайта.
Версии MODX:
Последняя версия, которая находится в активной стадии развития является MODX Revolution, эта системы продумувалась очень тщательно с акцентом на функциональность и удобство пользования. Предварительной версией MODX Revolution является MODX Evolution, эти две версии развиваются сейчас параллельно, потому что считается, что работать с версией Evo для начинающих разработчиков все же легче, чем на Revo.
Среда MODX:
MODX Revolution
MODX Evolution
ru.webdreamlab.com
MODX Revolution, MODX Revo, CMS MODX, бесплатные CMS
Возможности MODX Revolution
Хотя каждый пункт из списка ниже не способен полностью отразить всю доступную функциональность, простоту разработки и дружелюбность к пользователю системы управления MODX Revolution, вы cможете представить основные возможности, узнав о некоторых из них:
Безопасность и защита MODX довольно серьезно заботится о безопасности. Вся архитектура MODX Revolution была создана с учетом требований безопасности. Каждый ввод данных фильтруется, а каждый запрос в базу данных при использовании API выполняется через подготовленные запросы (prepared statements), которые устраняют возможность SQL инъекции. Команда разработчиков постоянно проводит аудит кода MODX для того, чтобы быть уверенными в актуальности кода, и исправляет любые проблемы, которые могут возникнуть. Полная свобода творчества Система управления сайтами MODX позволяет создавать сайты точно такими, как вы их себе представляете, с абсолютно неограниченными возможностями для творчества. Мы считаем, что средства разработки сайтов должны учитывать творческое видение пользователей, не вводя никаких специальных ограничений. Бесподобная оптимизация сайтов (SEO) MODX позволяет вам практически без усилий контролировать вывод информации на все 100%. В отличие от других систем, которые требуют изучения сложных движков темизации, в MODX вы работаете напрямую с HTML и с таким количеством специальных переменных сайта, которые действительно вам нужны. Порой тратятся минуты на создание сайта, который занимает удивительно хорошие позиции в поисковых системах. А вследствие того, что разработчик сайта полностью контролирует и может изменять вывод информации в любое время, для внесения улучшений потребуется всего несколько кликов. Устанавливайте MODX как и где хотите Гибкая система установки позволяет развертывать систему практически в любых условиях. Вы можете установить ядро системы вне корня веб-сервера, переименовав директорию ядра для дополнительной безопасности. Также вы можете поддерживать несколько сайтов на MODX из одного набора файлов. Устанавливайте дополнения (add-ons) внутри приложения Система управления пакетами в MODX позволяет администраторам сайтов устанавливать, обновлять и переносить содержимое, шаблоны, дополнения или даже полностью сайты, не беспокоясь о потерянных шагах или зависимостях. Все работает из единого интерфейса внутри Менеджера MODX, который удаленно получает информацию с сайта MODX. Новый Менеджер со встроенной системой индивидуализации Свежий новый интерфейс, построенный на MODX API и работающий на индивидуальной реализации ExtJS, создает новые возможности для разработчиков MODX быстро разрабатывать индивидуальные интерфейсы и дополнения. Разработчики могут создавать такие интерфейсы Менеджера, которые будут показывать только специальные поля и меню, необходимые для обычных редакторов сайта. Безопасность промышленного уровня, модели пользователей и аутентификация Характеристики на основе списка управления доступом (ABAC, Attribute Based Access Control) позволяет администраторам сайтов детально разграничить доступ к сайтам на MODX Revolution. Аутентификация может производиться через встроенную систему пользователей, службу каталогов Active Directory, LDAP, OpenID или в сущности через любую другую систему, которая может использовать MODX API. Прекрасная интернационализация и локализация MODX Revolution предоставляет множество подходов для работы с мультиязычными сайтами. Среди них обязательно имеется подходящий вариант почти для любого сайта. Культуры и контексты могут работать вместе, создавая детальные настройки интернационализации внутри фреймворка. Это позволяет разработчикам определить язык, валюту и формат даты, а также еще что-либо, что может быть нужно локализовать в разработке. Объектно-ориентированное ядро и API Переписанная CMS с нуля при использовании xPDO система MODX позволяет легко работать со специальными источниками данных, даже с несколькими разными типами баз данных. Сочетание полностью объектно-ориентированным API с последовательной архитектурой работа с MODX делает программистов просто счастливыми. Контексты Системные настройки MODX с помощью контекстов могут быть перезаписаны, расширены, изолированы или разделены между доменами, поддоменами, подсайтами, несколькими сайтами, специфическими языковыми разделами, различными веб приложениями и т.д. Расширяемое кеширование Новое ядро и техника кеширования на уровне частей веб-страницы позволяют уменьшить общий размер кеша одновременно с уменьшением нагрузки сервера путем организации файлов кеша в иерархическую структуру директорий. Новое ядро MODX также позволяет сохранять результаты запросов базы данных в файл, память (при использовании memcached) или в индивидуальную систему кеширования. Это приводит к уменьшению нагрузки на базу данных и расширению возможностей для комфортной работы с высоконагруженными сайтами. Фильтрация контента Любой элемент MODX (TV, Content, Chunk, Placeholder) может иметь сложную систему пре- и постобработки, примененной через фильтры ввода и вывода. Например, вы можете использовать их для обрезки части текста, форматирования даты, математических вычислений или чего-либо еще, что вы могли бы придумать с маленьким кусочком кода. Парсер контента с частичным кешированием страницы MODX предоставляет полностью рекурсивный парсер. Любой элемент MODX, включая сниппеты, чанки, переменные шаблонов (TV) и плейсхолдеры могут быть сделаны некешируемыми для частичного кеширования страницы. Расширения без изменений ядра Объектно-ориентированное ядро MODX позволяет вам создавать свои собственные индивидуальные реализации множества возможностей ядра без изменений кода ядра. Это помогает защитить разработку и гарантирует возможность обновления в будущем. Переопределяйте все! В MODX вас никто не заставляет разрабатывать только в одном единственно возможном стиле. Если у вас есть специфические требования, вы можете использовать индивидуальную программу работы MODX путем расширения классов ядра. Это включает в себя парсер контента, обработку запросов и ответов, сессии, обработку ошибок, частичное кеширование страниц и кеширование результатов запросов базы данных. Родные JSON и очередь сообщений MODX включает и использует родную обработку JSON для взаимодействия с другими системами с помощью архитектуры REST. Простая встроенная очередь сообщений позволяет реализовать публикацию сообщений и подписку на передачу сообщений для продуманного взаимодействия с внешними системами в промышленных приложениях. Сессии, управляемые базами данных Параметры конфигурации обработчика сессий реализуют совместимость с системами кластеризации веб-серверов. Журналирование ядра Система предоставляет различные уровни ошибок и выводимых данных, включая ECHO, HTML и FILE. Разработчики используют эту функциональность для журналов аудита, аудита ошибок, отладки или других целей.modx.ru
Професійний фреймворк для створення креативних сайтів
Що таке MODX?
MODX безкоштовний фремворк, що використовується для створення сайтів, написаний на мові PHP, збереження інформації відбувається у базі даних MySQL або MS SQL. Система управління вмістом MODX встановлюється на більшості WEB-серверах ( IIS, Apache, Lighttpd, nginx і Zeus) і є крос-платформною та крос-браузерною, що дає можливість реалізації найсерйозніших технічних рішень у розробці сайтів на MODX. Платформа популярна серед розробників через свою доступність, простоту та легкість написання коду. Розробка дизайну сайту для модікс, верстка всього сайту на MODX чи окремого шаблону сторінки, наповнення веб-сайту перетворюється на приємний і цікавий процес із системою управління контентом MODX.
Переваги MODX:
- Сайти на MODX повністю захищені та у 100% безпеці і це все завдяки клопіткій роботі розробників, які регулярно моніторять код MODX.
- Платформа MODX найбільш сумісна з WEB-серверами.
- Сайт створений на MODX зручний в адмініструванні( впроваджений механізм із генеруванням каталогів, є можливість гнучкого контролю метаданих, жодної проблеми із розмежуванням прав доступу).
- Система MODX дозволяє напряму працювати з HTML кодом, що допоманає контролювати всю інформацію практично не докладаючи особливих зусиль.
- MODX дозволяє втілити будь-яку вашу ідею дизайну сайту абсолютно необмежуючи вашу творчість.
- Завдяки системі кешування MODX інформація обробляється дуже швидко, таким чином пришвидшуючи завантажуваність сторінок сайту.
Версії MODX:
Найновішою версією, яка знаходиться у активній стадії розвитку є MODX Revolution, ця системи продумувалась дуже ретельно з акцентом на функціональність та зручність користування. Попередньою версією MODX Revolution є MODX Evolution, ці дві версії розвиваються на даний момент паралельно, бо вважається, що працювати із версією Evo для початківців-розробників все ж легше ніж на Revo.
Середовище MODX:
MODX Revolution
MODX Evolution
webdreamlab.com