суббота, 4 мая 2013 г.

Symfony в Drupal 8


Если вы работаете на Drupal, тогда вы осознаете, что следующий главный релиз Drupal собирается интегрироваться с более широкой экосистемой PHP. Адаптация к Symfony - действительно большое дело. Не только для Drupal разработчиков, которые должны будут много учить большое количество стабильный компонент для нахождения компромисса. Также это большое дело для Symfony разработчиков, которым предоставляется целая новая платформа для разработки. Взаимно расширяя PHP сообщества Symfony, Drupal. Drupal разработчики могут вносить свой вклад в более низкие уровни. Мы просмотрели, более обширный список Symfony компонент, которые должны появиться в Drupal 8, но мы не в состоянии поддерживать статус этих компонент. Сдесь выложили собраный список компонент Symfony, использованных в Drupal 8.



Данная статья является переводом. Потому текст написанный от перевого лица не мой.

Компоненты Symfony

Вот список всех Symfony компонент: http://symfony.com/doc/current/components/index.html
Проект Symfony  впервые объявил о сотрудничестве с Drupal в заметке  в Марте 2012, в которой обсуждались основные компоненты, которые усилят ядро Drupal 8:

HttpFoundation и HttpKernel

Адаптацию данных компонент возглавила иницива WSCCI (Web Services and Context Core Initiative) - Web сервисы и контекст в ядре, которая хочет видеть замечательные концепции, которые построены поверху работающего по верху основного класса REST сервера. Это позволяет Drupal  доставлять контент без запутывания. Что делает в основном Drupal намного более гибче, сильнее и удобным в поддержке при длительной работе.

Routing
Данный компонент размечает HTTP запросы в набор конфигурационных переменных. C Drupal 8 и далее, вы будете определять ваши маршруты в конфигурационные файлы YAML, которые находятся в вашем модуле. И набор индивидуальных маршрутов, которые ссылаються на действия, которые определены в классах модуля. Если вы знакомы с hook_menu, возьмите во внимание, так как это наследник.

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

DependencyInjection
Зависимость инъекции - это путь написания кода, что держит классы разделёнными один от другого, так они могут быть переиспользованными и на них могут быть написаны тесты. DI контейнер предоставляет структуру, что позволяет разделённым классам взаимодействовать один с другим. Ожидается, что вы заметите многократное использование данного подхода в ядре Drupal.

ClassLoader
Загружает классы проекта тогда, когда это нужно, если они были названы и расположены соответственно   Принципам совместимости в PHP - PSR-0. Что поможет разработчикам модулей. Исчезнет необходимость волноваться об module_load_include и простых танцах над зависимостей загрузок, останется просто вызвать класс при выполнении для того, чтобы  получить результат.


Пока достаточно немного Symfony компонент было перенесенно в Drupal, но они не были упомянуты в одном особенном месте. but they’re not really mentioned in one particular place. Анализируя зависимости Drupal, вы можете найти следующие компоненты:

Twig
Шаблонизатор, Drupal 8 содержит новый движок шаблонов. Он был разработан Fabien Potencier, создателем проекта Symfony, так мы уже убедились, что twig хорошо будет работать с компонентами Symfony, которые находятся в Drupal. Если вы собираетесь, что-то темезировать в  Drupal 8, попробуйте Twig, не пожалеете.

Данный компонент позволяет проверять значения в основном смысле. Мы посмотрим, как он используется при проверке форм при их отправке, так же хорошо, как и при проверке сущностей данных Drupal. Компонент использует Doctrine Annotations, который мы рассмотрим позже.

Обеспечивает стандартный набор инструментов для загрузки файлов перевода, генерирования переведённых строк и подготовки их к использованию. Благодарности Gábor и  Мультиязычной инициативе, которая внесла в ядро!

Process
Выполняет команды командной строки в различных подпроцессах. Будет использоваться для управления командной строки Drupal.


Serializer
Переводит объект в один из указанных форматов и обратно.

Yaml
Компонент используется  Инициативой конфигурирования Drupal - (CMI) , разрешая модулям определять свои настройки по умолчанию  и разрешая построителям сайт переопределять их.

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

Компоненты, которые не в Symfony (но работают с)

Так же как и Symfony компоненты, в Drupal 8 много сторонних PHP компонент, которые встречаются Drupal 8. Эти компоненты не являются частью Symfony, но скланяют Symfony использовать их так же успешно. Данный краткий  список был найден в ядре:

PHP менеджер зависимостей , который dзагружает зависимости в определённый проект на локальную основу. Близкий аналог gem на Ruby.

Doctrine - это набоор инструментов для работы с базой данных. Drupal использует значимую часть Doctrine.

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



PHP HTTP клиент, который строит web запросы в Drupal 8. Компонент становится жизненно необходимым, когда  Drupal сайты получат необходимость работать с другими web сервисами.

Набор инструментов, который помогает Drupal подготовить дополнительный материал для загрузки страниц. Это может быть CSS, JavaScript, images или что-нибудь другое. Компонет эффективно берёт на себя обязанность по сжатию CSS и JavaScript, управлением стилей изображений, и управлением другими медиа типами в последовательном стиле..and dealing with other media types in a consistent fashion. С Drupal интеграцией до сих пор существуют некоторые проблемы, мы ожидаем их решения и принятия компонента в ядро Drupal 8.

Библиотека облегчает использование и производство RDF, что позволяет сайтам Drupal 8 производить мета данные и разметку, подготавливая сайты, чтоб стать первыми жителями семантического web.

Стандарт производственного тэстирования, запечён прямо в ядро Drupal. Drupal использует этот компонент, чтоб  убедиться в том, что ядро работает правильно всё время, помогает разработчикам своих модулей строить модули правильно. Как результат Drupal код может быть использован в более широкой экосистеме PHP.

Данный компонент обеспечивает общий интерфейс логгирования по всему целому PHP приложению, позволяя компонентам Symfony логировать данные тем же путем, что и Drupal. Ожидается, что watchdog будет заменён Monolog(ом), который делает компонент PSR/Log жизненно необходимым в этой попытке.

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

Возьмите на заметку всё ,что состояния системы Drupal 8 меняются, статья может содержать некоторые неточности по истечении времени. Следите за свежими обновлениями нашего блога.

Разузнайте больше.

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

Данная статья является переводом
Оригинал - http://crossfunctional.net/blog/2013/mar/symfony-components-in-drupal-8

2 комментария:

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

    ОтветитьУдалить
  2. :) Спасибо.
    Я робот. Я робот ...
    :)

    ОтветитьУдалить