В первые выходные февраля 2015 года команда miggle приступила к изучению Drupal 8 (D8).

Суббота

Начало было немного медленным. Мы все начинали с больших амбиций делать много действительно сложных вещей, которые мы делаем изо дня в день с Drupal 7 (D7). Некоторые из нас очень хорошо справлялись со своими проектами, но некоторые из нас обнаружили, что Drupal 8 внутри имеет довольно высокую кривую обучения. Поскольку архитектура D8 сильно отличается от архитектуры D7, довольно много субботнего утра было потрачено на загрузку и установку собственного блока miggle VLAD (Vagrant LAMP Ansible Drupal) для локальной разработки. Мы со Стивом решили решить задачу CI (непрерывная интеграция) с помощью CMI (интерфейс управления конфигурацией). Поскольку miggle использует Features в качестве стандартной процедуры для экспорта конфигураций между средами, я думал, что с новым CMI это будет довольно просто, но на самом деле это оказалось довольно сложной задачей. Чтобы справиться с этими проблемами, Альберт Альбала написал очень хорошее руководство, которое вы можете найти на http://dcycleproject.org/blog/68/approach-code-driven-development-drupal-8. Это послужило действительно хорошей отправной точкой, однако мы обнаружили, что некоторые биты не были обновлены, поскольку D8 постоянно развивается. После подведения итогов того, что мы узнали в тот день, пришло время отправиться в паб!

Воскресенье

В воскресенье у меня было гораздо больше успехов. Я решил создать свой блог в D8 и нашел это очень приятным опытом. TWIG удивительно быстр в использовании, и я смог создать большую часть тем для этого блога всего за несколько часов! Файл .info теперь представляет собой файл YAML.

name: White Sky Web
type: theme
description: 'White Sky Web theme based on Classy'
core: 8.x
package: custom
base theme: classy
libraries:
  - whiteskyweb/base
regions:
  menu: Menu
  header: Header
  content: Content
  sidebar_first: First sidebar
  footer: Footer

В этом случае я внедрил второй THEME.libraries.yml для определения всех CSS и JS.

base:
  version: VERSION
  css:
    theme:
      assets/css/bootstrap.css: {}
      assets/css/font-awesome.min.css: {}
      assets/css/main.css: {}
      //cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/styles/monokai_sublime.min.css: {}
  js:
    assets/js/classie.js: {}
    assets/js/bootstrap.min.js: {}
    assets/js/smoothscroll.js: {}
    //cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/highlight.min.js: {}
    assets/js/main.js: {}
  dependencies:
    - core/jquery

Вы можете использовать файл .theme версии D8 файла template.php для передачи переменных в TWIG.

<?php
/**
* Add a variable to TWIG
*/
function whiteskyweb_preprocess_html(&$variables) {
  $variables['profile_img'] = '/' . drupal_get_path('theme','whiteskyweb') . '/assets/img/profile.jpg';
}

Заворачивать

Drupal 8 — это большое улучшение по сравнению с Drupal 7, если вы устанавливаете его с нуля. Я нашел TWIG очень быстрым для создания тем, и мне нравится новое встроенное редактирование «Быстрое редактирование». Для чего-либо, кроме небольших сайтов/блогов, и я не вижу, чтобы он был готов к типам сайтов, которые мы создаем в miggle am, в течение следующих 1-2 лет, потому что модулей contrib просто нет. Модули Contrib, такие как pathauto, все еще нуждаются в разработке в прайм-тайм.

Узнайте больше о том, что мы сделали на YouTube.