В этом цикле статей я попробую сделать обзор особенностей Drupal 8 с точки зрения разработчика. Эти статьи не являются попыткой объять необъятное. Я просто попытаюсь осветить некоторые моменты, которые помогут приблизить Вас к теме обсуждаемого вопроса и начать разрабатывать под Drupal 8.

Для ознакомления с данным материалом будет очень полезным понимание основ PHP, а в частности знакомство с ООП. Понимание Drupal 7 также является рекомендуемым.

Я буду рад любым комментариям и конструктивной критике, которые могут помочь сделать данный материал лучше и полезнее.

Symfony

Что такое Symfony?

Symfony - это PHP фреймворк, который используется в построении PHP приложений с применением лучших подходов к разработке, что позволяет Drupal повторно использовать хорошо продуманные реализации контроллеров и системы маршрутизации. Эти существующие части кода не были специально разработаны для Drupal и они имплементируют общие публичные стандарты. В отличии от процедурного подхода, который использовался в Drupal 7, в Drupal 8 повсеместно используется ООП, что позволяет достичь большей гибкости, используя Symfony в качестве части ядра. Для ознакомления с основами Symfony Вы можете использовать следующие материалы: Symfony Framework.

Почему Symfony?

Одной из наиболее полезных возможностей, которые предлагает нам Symfony, является поддержка автоматической загрузки кода. Автозагрузка кода - это возможность загрузки частей кода когда это является необходимым. Результатом этого является то, что Drupal разработчики могут включать переиспользуемый код простым включением директивы use вместо создания целого include файла. Автозагрузка становится доступной благодаря добавлению компонента ClassLoader.

Drupal всегда был PHP приложением, а Symfony - это фреймворк, который делает доступными множество полезных библиотек. Использование Symfony в ядре Drupal имеет как преимущества так и определенные риски.

Добавление фреймоврка может увеличить количество опытных разработчиков, особенно PHP программистов, которые легче смогут переключиться на Drupal, и будут мотивированны изучать и развивать проект. Также, это может создать барьер и увеличить порог вхождения для части сообщества Drupal разработчиков, которые имеют глубокое знание Drupal, но минимальный опыт использования продвинутых PHP практик. Опытные разработчики знают, что капля всегда в движении.

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

Что такое контроллер?

Контроллеры могут быть непростой концепцией для понимания, особенно, если ранее Вы использовали процедурный подход, который достаточно часто использовался в Drupal 7.

Контроллер является эквивалентом page callback функции в hook_menu Drupal 7. В Drupal 8 Вы создаете класс контроллера с методом для отображения информации - тот же путь применялся в Drupal 7, Вы создавали функцию, ссылку на которую указывали в hook_menu(). В Drupal 8 контроллеры пришли вместе с Симфони.

В документации по Симфони есть два очень полезных пункта о контроллерах:

  • Контроллеры - это PHP функции, которые создаются для получения информации и формировании ответа на HTTP запрос...
  • Каждый запрос обрабатываемый Symfony 2 имеет тот же жизненный цикл. Фреймворк заботиться о повторяющихся задачах и запускает контроллеры, содержащие необходимый код Вашего приложения.

Drupal использует Symfony таким же образом как и другие приложения разработанные с использованием Symfony.

Что такое маршрутизация и маршрут?

В Symfony маршрутизация позволяет Вам назначить URL, который будет соответствовать разным областям Вашего приложения. Другими словами, маршрут - это способ указать соответствие между URL и контроллером. Например, предположим, что Вы хотите связать URL /blog/my-post с конкретным контроллером, который обработает и вернет данные с постом блога.

Продолжение следует... В следующей части мы начнем разработку модуля.

Если Вы считаете, что продолжение будет Вам интересно - пишите об этом в комментариях.

Комментарии

Конечно интересно! Жду с нетерпениям! Спасибо!

Где-то здесь http://stillfinder.net/ru/tags/drupal-8

Хорошо, но мало ;) Ждем продолжения!

Уже продолжил http://stillfinder.net/ru/tags/drupal-8

Добавить комментарий