Обзор drupal 8 by andrei khalipau, kostya halipov and Егор Богатырёв

54
Drupal 8 Введение

Upload: minsk-php-user-group

Post on 16-Jun-2015

717 views

Category:

Documents


2 download

DESCRIPTION

Minsk Drupal Meetup #1

TRANSCRIPT

Page 1: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Drupal 8

Введение

Page 2: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Статистика

●Текущий релиз - drupal 8.0-alpha9

●Более 11 400 файлов и 37.5 мб кода в

распакованном состоянии

●Количество контрибьютеров - over 1700

●Количество незакрытых критических багов менее

120

●Предполагаемая дата релиза TBD

●Количество скачиваний более 23 тысяч

Page 3: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Ключевые моменты

Phase Start date End date

Development phase March 10, 2011 December 1, 2012

Feature completion phase December 1, 2012 February 18, 2013

Clean-up phase February 18, 2013 July 1, 2013

API completion phase July 1, 2013 TBD

Page 4: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв
Page 5: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Инициативы

●Configuration Management

●HTML5

●Layouts (была вынесена из ядра)

●Mobile

●Multilingual

●Views in Core

●Web Services

Page 6: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Install Drupal 8

Page 7: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

CKEditor

Page 8: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Views

Page 9: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Поддержка RESTful Web Services

Page 10: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

No valid e-mail, link

Page 11: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Пример создания материала без комментариев

Page 12: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Manage fields

Page 13: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Manage form display

Page 14: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Quick editing

Page 15: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Отказ от поддержки IE6/7

Page 16: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Конфигурация хранится в

специальных файлах

sites/default/files/config_XXXX/active

Page 17: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Модуль Migrate

Page 18: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Пример размещения одного блока несколько раз

на странице

Page 19: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Пример размещения одного блока несколько раз

на странице

Page 20: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

BACKEND

Page 21: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Изменения в Drupal 8

Новые типы полей.

Настройка страниц с Views.

Редактирование контента.

Конфигурационная система.

ООП подход.

Использование компонентов Symfony2.

PHPUnit тесты.

Миграция в Drupal 8.

Мультиязычность.

Сокращение модулей ядра.

Page 22: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Новые типы: ссылка на сущность (Entity Reference),

ссылка, дата, адрес электронной почты, телефон и

т.д.

Комментарии теперь являются полем.

Создания собственных пользовательских

контактных форм.

Новые типы полей

Page 23: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Модуль Views встроен в ядро.

Легко настраиваемая фронтальная страница.

Простой процесс создания собственных страниц

администрирования, настройки уже существующих

страниц, фильтров, действий и т. д.

Настройка страниц с Views

Page 24: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Встроенный редактор WYSIWYG CKEditor.

Конфигурация WYSIWYG с учетом требований веб-

безопасности.

В месте редактирования контента теперь нет

необходимости использовать полную форму

редактирования.

Редактирование контента

Page 25: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Файлы конфигурации в формате YAML.

Простой импорт/экспорт конфигураций между

сайтами.

Использование систем контроля версий (Git, SVN и

т.д.)

Конфигурационная система

Page 26: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

ООП подход к большей части системы.

Постепенный отход от процедурного

программирования и использования хуков.

Стандарт PSR-0 для пространств имен.

Полный переход к ООП планируется осуществить в

Drupal 9.

Большая гибкость в разработке и настройке

поведения Drupal.

ООП подход

Page 27: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

HttpFoundation и HttpKernel

Routing

ClassLoader

DependencyInjection или Service Container

EventDispatcher

Yaml

Twig

Serializer

Translation

Process

Validator

Использование компонентов

Symfony2

Page 28: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Drupal 8 содержит PHPUnit для более быстрого и

целенаправленного тестирования.

SimpleTest все еще является частью системы.

PHPUnit тесты

Page 29: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Модуль Migrate интегрирован в ядро.

Инструменты импорта.

Импорт контента из Drupal 6 или Drupal 7.

Миграция в Drupal 8

Page 30: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Выбор языка на первом шаге установки Drupal 8.

Перевод слов в системе с помощью встроенного

пользовательского интерфейса стал более удобен.

Создание страниц с Views с фильтрацией языка и

видимостью блоков.

Автоматические обновления переводов от

сообщества Drupal.

Мультиязычность

Page 31: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Blog

Dashboard

List

OpenID

Overlay

PHP filter

Trigger

Poll

Profile и т.д

Сокращение модулей ядра

Page 32: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

СПАСИБО ЗА ВНИМАНИЕ

Материалы используемые для подготовки докладаo Drupal 8 — Coming soon (https://drupal.org/drupal-8.0)

o Drupal 8 — революционные изменения

(http://habrahabr.ru/post/197670/)

o Change records for Drupal core (https://drupal.org/list-

changes)

o Лучшие ресурсы для начала работы с Drupal 8

(http://habrahabr.ru/company/first/blog/205754/)

Page 33: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Drupal 8

Frontend

Page 34: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Bartik, Stark & Seven

Page 35: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Bartik wide

Page 36: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Bartik narrow & mobile

Page 37: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Seven wide

Page 38: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Seven narrow & mobile

Page 39: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

HTML 5

Page 40: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Responsive images

Page 41: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

jQuery 2.0.3 & jQuery UI 1.10.2

Page 42: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Modernizr

Page 43: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Backbone & Underscore

Page 44: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

jQuery UI Touch Punch

Page 45: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

domReady

Page 46: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

No IE8

Page 47: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Twig

Page 48: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Twig syntax

• {# #} - comments

• {{ }} - print

• {% %} - commands

Page 49: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Docblock

PHPTemplate:

<?php

/**

* @file

* File description

*/

?>

Twig:

{#

/**

* @file

* File description

*/

#}

Page 50: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Переменные

PHPTemplate:

<?php print $content; ?>

<?php print $item['#item']['alt']; ?>

<?php $cust_var = $content-

>comments; ?>

<?php $args = array('!author' =>

$author, '!date' => $created); ?>

Twig:

{{ content }}

{{ item['#item'].alt }}

{% set cust_var =

content.comments %}

{% set args = {'!author': author,

'!date': created} %}

Page 51: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Управляющие конструкции

PHPTemplate:

<?php if ($content->comments): ?>

<?php endif; ?>

<?php foreach ($users as $user): ?>

<?php endforeach; ?>

Twig:

{% if content.comments %}

{% endif %}

{% for user in users %}

{% endfor %}

{% for user in users %}

* {{ user.name }}

{% else %}

No users have been found.

{% endfor %}

Page 52: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Фильтры

PHPTemplate:

<?php print check_plain($title); ?>

<?php print t('Home'); ?>

<?php print t('Welcome,

@username', array('@username' =>

$user->name)); ?>

Twig:

{{ title|escape }}

{{ 'Home'|t }}

{{ 'Welcome, @username'|t({

'@username': user.name }) }}

{% trans %}

Welcome, {{ user.name }}

{% endtrans %}

escape

Page 53: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв

Theme Drupal 7 > Drupal 8:

• MYTHEME.info > MYTHEME.info.yml

• template.php > MYTHEME.theme

• template_name.tpl.php > template_name.html.twig

• Theme functions > twig templates

• No process functions

• No render functions

Page 54: Обзор Drupal 8 by Andrei Khalipau, Kostya  Halipov and Егор Богатырёв