Перейти к основному содержанию

Drupal 8. Введение в YAML

Drupal 8. Введение в YAML

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


Файл YAML состоит из пар ключ и значение, разделенных двоеточием. Вот как выглядит одна строка из файла YAML:

Пара ключ-значение для этого примера:

name: Welcome

Файлы YAML заменяют файлы .info

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

Drupal 8 использует файлы YAML (.yml) вместо файлов .info.

Вот пример кода в файле YAML. Это код для файла info.yml для модуля.

name: Welcome
type: module
description: Display a message when a user logs in
core: 8.x
package: Custom

Если вы уже занимались разработкой для Drupal 7, информация будет выглядеть знакомо. Одно из ключевых отличий между Drupal 7 и 8 состоит в том, что пара ключ-значение разделяется знаком равенства («=«) в формате INI, используемом в Drupal 7, и двоеточием («:») в формате YAML, используемом в Drupal. 8. После двоеточия должен быть пробел.

YAML-файлы определяют маршруты

В Drupal 8 файлы YAML не просто предоставляют информацию о модулях и темах. Как уже упоминалось выше, они также используются для определения пунктов меню, вкладок, маршрутов, сервисов и так далее.

Вот пример маршрута модуля hello hello.routing.yml :

hello.content:
path: '/hello'
defaults:
_controller: 'Drupal\hello\Controller\FirstController::content'
_title: 'Hello world'
requirements:
_permission: 'access content'

Иерархия

В приведенном выше примере некоторые строки имеют отступ. Это связано с тем, что файлы YAML поддерживают иерархию с помощью отступов.
Вот еще один пример:

first_module.admin:
title: 'First module settings'
description: 'A basic module to return hello world'
parent: system.admin_config_development
route_name: first_module.content
weight: 100

В вышеприведенном YAML все строки ниже first_module.admin имеют отступ, что означает, что они вложены в first_module.admin . В YAML это называется составным типом данных, который звучит страшно, но во многом похож на массив в PHP. Это означает, что все, что указано в first_module.admin, является его дочерним элементом.

Это будет эквивалентно следующему массиву PHP:

array (
'first_module.admin' => array(
'name' => 'First module settings',
'description' => 'A basic module to return hello world',
'parent' => 'system.admin_config_development',
'route_name' => 'first_module.content',
'weight' => '100',
),
);

Надеюсь, картина о том как использовать YAML в друпал немного прояснилась, приобрела черты.

Теги

Автор

Я веб-разработчик и графический дизайнер, занимаюсь разработкой сайтов разной специализации и разного уровня сложности, а также, графическим дизайном.


Добавить комментарий