• Save
Dcmi v likin kyiv 2013
Upcoming SlideShare
Loading in...5
×
 

Dcmi v likin kyiv 2013

on

  • 665 views

 

Statistics

Views

Total Views
665
Views on SlideShare
265
Embed Views
400

Actions

Likes
0
Downloads
0
Comments
0

11 Embeds 400

http://vlikin.blogspot.ru 199
http://vlikin.blogspot.com 184
http://vlikin.blogspot.in 7
http://www.vlikin.blogspot.com 3
http://vlikin.blogspot.ca 1
http://vlikin.blogspot.be 1
http://vlikin.blogspot.dk 1
http://vlikin.blogspot.de 1
http://www.vlikin.blogspot.de 1
http://vlikin.blogspot.gr 1
http://vlikin.blogspot.co.il 1
More...

Accessibility

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Dcmi v likin kyiv 2013 Dcmi v likin kyiv 2013 Presentation Transcript

  • Виктор Ликин @vlikinСистема управления конфигурацией в Drupal 8Киев 2013http://vlikin.blogspot.com/2013/06/drupal-8.html?spref=tw
  • Миграция конфигурацииК чему мы наконец-то пришли!А что мы на самом деле получили?
  • Получили● Определили, что является контентом, что конфигурацией.● Разместили в отдельных хранилищах.● Реализовали загрузку группами.● Реализовали мультиязычность конфигурации.● Организовали процесс миграции конфигурации. View slide
  • Порядок доклада● “Features в ядре”. Практический пример миграции конфигурационныхданных между проектами.● Изменения, касающиеся разработчиков.● Функциональная схема системы конфигурации.● Дополнительные модули, функционал, который должен войти в ядро.● Дискуссия.● Всё. View slide
  • Перейдём к практическому применениюРассмотрим стандартный фунционал Drupal 8, который впиталв себя наилучшие практики модуля Features.
  • Визуальный план миграции
  • Процесс миграции конфигурации● Изменим настройки на проекте live.● Переренесём настройки с live active → local staging.● Обновим настройки на проекте local.● Проверим результат миграции конфигурации.
  • Находим настройки информации сайта, изменяем
  • Что у нас есть на local проекте.
  • Обновляем конфигурацию на local проекте
  • Находим файл конфигурации в файловом хранилище
  • Методы обновления файлов конфигурации● SCP● GIT, SVN, ...● FTP, SFTP● RSYNC● DRUSH RSYNC
  • Перемещаем файлы конфигурации между проектами● Перемещаем файлы между проектами live и local● Обновляем файловую конфигурацию с помощью утилиты drush, rsyncdrush rsync -d @sm.live:%conf_active @sm.local:%conf_active
  • Находим страницу синхронизации конфигурации
  • Находим изменённую группу конфигурации
  • Проверяем изменения
  • Команды Drush для конфигурации
  • Обновление конфигурацииdrush @sm.local config-importdrush @sm.local cc allОбновляем конфигурацию с файлового хранилища в активное хранилище
  • Проверяем результаты миграции
  • Смотрим результаты
  • Что касается разработчиков
  • Пример использования// Получаем название сайта.$site_name = variable_get(site_name, Drupal);// Изменяем название сайта на какое-нибудь другое.variable_set(site_name, This is the dev site.);// Загружаем набор данных, получаем название сайта.$config = config(core.site_information);$site_name = $config->get(site_name);// Изменяем и сохраняем.$config->set(site_name, My Awesome Site);$config->save();БылоСейчас
  • Пример конфигурационного файлаname: mediumlabel: Medium (220x220)effects:bddf0d06-42f9-4c75-a700-a33cafa25ea0:name: image_scaledata:width: 220height: 220upscale: 1weight: 0ieid: bddf0d06-42f9-4c75-a700-a33cafa25ea0core/modules/image/config/image.style.medium.yml
  • Пример описания структуры конфигурационного файла# Simple extended data types:# Human readable string that must be plain text and editable with a text field.label:type: stringlabel: Labeltranslatable: true# Internal Drupal pathpath:type: stringlabel: Path# Human readable string that can contain multiple lines of text or HTML.text:type: stringlabel: Texttranslatable: true
  • Другой примерimage.style.*:type: mappinglabel: Image stylemapping:name:type: stringlabel:type: labeleffects:type: sequencesequence:- type: mappingmapping:name:type: stringdata:type: image.effect.[%.parent.name]weight:type: integerieid:type: stringimage.schema.yml
  • Типы данных# Basic scalar data types from typed data.boolean:label: Booleanclass: DrupalCoreTypedDataTypeBooleanemail:label: Emailclass: DrupalCoreTypedDataTypeEmailinteger:label: Integerclass: DrupalCoreTypedDataTypeIntegerstring:label: Stringclass: DrupalCoreTypedDataTypeStringuri:label: Uriclass: DrupalCoreTypedDataTypeUrisystem.data_types.schema.yml.
  • Типизированные конфигурационные файлы$new_slogan = Great new site slogan;$typed_site_info = config_typed()->get(system.site);$typed_site_info->set(slogan, $new_slogan);Если вы не используете типизированную конфигурацию,просто используйте config(),что намного правильнее и быстрее.
  • Практика использованияИзбегайте множественную инициализацию объектов config в одной функции.Это сказывается на производительности.config(foo.bar)->set(foo, foo)->save();config(foo.bar)->set(bar, bar)->save();Лучшим решением будет инициализировать объект config один раз, провестис ним работу, сохранить.$config = config(foo.bar);$config->set(foo, foo);$config->set(bar, bar);$config->save();
  • Функциональная схема системы конфигурации
  • Схема миграции
  • Модуль переводов конфигурацииdrupal.org/project/config_translation
  • Добавляем перевод
  • Модуль инспектирования конфигурацииЭто позволяет инспектировать значения, структуры конфигураций.drupal.org/project/config_inspector
  • В виде дерева
  • В виде формыhttps://drupal.org/node/2010798
  • В виде PHP(raw)
  • Терминология● From - a site from, a live site.● To - a site to, a development site.● Environment, site - synonymous sometimes.● Active directory – Current site setting paces in the file system.● Staging directory – Data is stored there before importing.● File storage – Current site settings located in the file system.● Active storage - “Data base” storage, data that is used.
  • Ресурсы● Использование системы конфигурирования в Drupal 8http://goo.gl/g4nbn● Управление конфигурацией в Drupal 8http://goo.gl/tvz9I● Синхронизация сайтов Drupal. Staging в процессе разработкиhttp://goo.gl/ocLsb● Примеры использования.https://drupal.org/node/1809490#config-writing● Объяснение схем, информации(meta) систем конфигурированияhttps://drupal.org/node/1905070
  • Виктор Ликин @vlikinСистема управления конфигурацией в Drupal 8