В первые выходные февраля 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.