Отношения

Первый взгляд на Themosis, фреймворк для WordPress разработчиков

Совсем недавно я услышал о новом проекте под названием Themosis, “фреймворк для WordPress разработчиков”. В данной статье мы изучим его возможности и рассмотрим пример – сайт, созданный разработчиками Themosis. Все самое интересное скрыто за катом.

Первый взгляд на Themosis, фреймворк для WordPress разработчиков

Что такое Themosis?

Для всех, кто знаком со словом «фреймворк», особенно касательно PHP, это может звучать удивительно. Неужели в WP не хватает функций для ведения блога? В общем, да.

Themosis не является фреймворком в том смысле, в котором Вы понимаете это. Это API для упрощенного создания сайтов. Themosis — целый набор API для разработки компонентов WordPress с классами, анонимными функциями и поддержкой Composer.

Themosis сам по себе является плагином для написания других плагинов. Любопытно, не так ли? У него есть средство для создания путей, а также собственный движок для шаблонов – Scout. Он создан специально для работы с WordPress. К примеру, шаблонная петля:

использует API для запроса информации, а также класс

Установка

Установка выполняется при помощи Composer и инструмента командной строки WordPress. Когда Вы создадите Composer-проект для Themosis, необходимо выполнить стандартную установку WP. После этого можно начинать работу с фреймворком.

Вы можете следовать официальной инструкции по установке для запуска Вашего первого примера, рассмотренного ниже.

Пример проекта

Themosis предлагает опробовать пример с их официального сайта – a сайт для продажи книг.

Проба пера

Вы можете использовать этот совет для начала работы с системой. Потом просто зарегистрируйте сайт при помощи:

Конечно, не забудьте добавить

алиас к Вашему

файлу так, как это описано здесь.
Клонируйте репозиторий при помощи команды

, и перейдите по адресу

в Вашем браузере для установки WordPress.

Завершив установку, выполните оставшиеся инструкции, написанные здесь. Теперь Вы можете делать все, что Вам захочется, и не бояться, что что-то пойдет не так. В любой момент можно перестроить VM и начать процесс заново.

После выполнения всех вышеперечисленных инструкций, Вы можете открыть пример приложения Themosis.

На данный момент Вы не заметите ничего интересного, так как любой сайт на WordPress можно настроить так, чтобы он выглядел аналогично приведенному примеру. Однако, на данный момент я хочу выделить два ключевых момента:

  1. Мы запустили этот проект очень быстро, практически ничего не сделав;
  2. Themosis использует API WordPress и обрабатывает запросы крайне быстро.

Что касается кода? Как же он выглядит? Давайте изучим этот вопрос в следующем пункте.

Собственно, код

Вы можете просмотреть код в репозитории проекта-примера: https://github.com/themosis/bookstore. Давайте посмотрим, что мы можем здесь отметить. Как я уже говорил раньше, Themosis — плагин, поэтому рассмотрим код плагинов книжного сайта:

Здесь мы наблюдаем три папки:

, содержащую логическую часть нашего сайта,

, содержащую исходный код Themosis (структура папок напоминает другие фреймворки, а их названия соответствуют классам), и

– место, где происходит работа Composer.

Говоря о качестве кода, можно отметить соблюдение большинства современных стандартов (имена, классы), а также использование специального кода для ограничения доступа к PHP.

Однако, это не единственное место, где содержится код Themosis. Вся логическая часть содержится в app, а шаблонная в других папках.

MVC

Смотря на структуру MVC, я могу сказать, что она хорошо сделана. Было бы хорошо, если бы она не была поделена на фрагменты (в нескольких родительских папках), но самостоятельно менять мы ничего не будем. Как и в Laravel, папка с путями находится в папке

поддерживается специальный синтаксис. В нашем примере также используются контроллеры. Из

:

Маршрутизация с параметрами

Смотря на некоторые фрагменты кода, нельзя не удивиться их простоте. Рассмотрим, к примеру, страницу поиска. Эта страница настолько проста, что ей даже не нужен контроллер. Она просто обращается к поисковому механизму WP…

Мне нравится это не только из-за простоты, но и из-за того, что систему поиска WP — которая, как правило, не самая лучшая — можно легко заменить.

Больше информации о маршрутизации Вы можете найти здесь. Еще, как вариант, можно посмотреть примеры.

Создание страницы со своим собственным контроллером

Давайте узнаем, на самом ли деле создавать страницы так просто, как об этом говорят.
Сначала мы запишем все маршруты в файл

:

После создадим новый файл с именем

:

И, наконец, создадим контролер в папке

:

По идее, это должно выводить “hello world” для маршрута

в любом фреймворке, но по причине того, что Themosis работает с API WordPress, нам необходимо выполнить еще один шаг. Давайте добавим страницу в систему для того, чтобы маршрут заработал.


После перезагрузки нам выдается наш Hello world.


Но мы же написали “Is anyone there?” в содержании страницы, а не «Hello World»! Почему так произошло? Для включения в страницу нашего контента нам необходимо получить доступ к глобальной переменной

в нашем контроллере.
Если мы поменяем наш контроллер для работы с контентом:

и добавим кое-что к view:

…, то мы получим то, что нам было нужно:


Затруднило? Возможно, что слегка, но я думаю, что к такому можно привыкнуть. Здесь важно то, что мы сделали возможной обработку всей информации WordPress.

Вывод

Думая о разработке при помощи плагина Themosis, можно сказать, что он не был бы нужен, если бы ядро WP было бы совершеннее. Themosis создает нужную структуру и убирает ненужный хаос, с которым нам приходилось смиряться.

Themosis еще находится в самом начале развития, находясь в версии 0.8, но до выхода 1.0 не так далеко, и я желаю разработчику удачи и успеха в его проекте.

НА СЛЕДУЮЩЕЙ СТРАНИЦЕ БОЛЬШЕ ИНФОРМАЦИИ