drupalНачало работы с drupal


замечания

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

В настоящее время существуют две поддерживаемые версии Drupal: 7 и 8. Drupal 8 построен на компонентах из платформы Symfony и многих других сторонних библиотеках для обеспечения современных структур развития.

Концепции Drupal

Версии

Release Date
 
Версия Дата выхода
8.2.4 07 декабря 2016 года
7,53 07 декабря 2016 года
6.38 (неподдерживаемый) 24 февраля 2016 года
5.23 (неподдерживаемый) 11 августа 2010 г.

Типы объектов

В ранних версиях Drupal полевая система использовалась только для типов контента. Теперь, благодаря API-интерфейсу Entity, мы можем добавлять поля к другим вещам, например комментариям. Фиксируемые объекты делают Drupal чрезвычайно гибким. Тип объекта - полезная абстракция для группировки полей. Ниже перечислены типы Entity в ядре Drupal:

  • Узлы (содержимое)
  • Комментарии
  • файлы
  • Термины таксономии
  • Таксономические словари
  • пользователей

Вы также можете создавать новые типы типов сущностей, если указанные выше варианты не соответствуют вашим потребностям.

Связки

Связки - это реализация типа объекта, к которому могут быть присоединены поля. Вы можете рассматривать связки как подтипы типа сущности. Например, с узлами контента (тип сущности) вы можете создавать пакеты (подтипы), такие как статьи, сообщения в блогах или продукты. Однако не все типы объектов имеют пакеты. Например, у пользователей нет отдельных пакетов (подтипов). Для типов сущностей, которые допускают связки, вы можете создать столько пакетов (подтипов), сколько захотите. Затем, используя систему Field, вы можете добавлять разные поля к каждому набору. Примеры включают поле загрузки файла на базовых страницах и поле субтитров в статьях.

поля

Поле является многоразовой частью контента. С технической точки зрения каждое поле является примитивным типом данных, с настраиваемыми валидаторами и виджетами для редактирования и форматирования для отображения. Вы можете прочитать далее руководство разработчика по использованию API-интерфейсов Drupal 7 .

Важно знать, что он связан с объектами, так это то, что поля могут быть добавлены к любому из пакетов (или типов сущностей), чтобы помочь организовать их данные.

Скажем, например, вы создаете тип контента с неструктурированным текстовым полем и используете HTML для его структуры, например раздел сводки или цены. Таким образом, было бы труднее контролировать, как они отображались, или устанавливать связи между различными типами связанного контента.

Здесь важно использовать поля. Вы можете создать поле сводки типа Long Text, а также поля цены типа Decimal.

сущность

Сущность будет одним экземпляром определенного типа объекта, например комментария, таксономического термина или профиля пользователя или пакета, такого как сообщение в блоге, статья или продукт.

Вы можете использовать entity_load для загрузки любого объекта. Обратите внимание, однако, что ядро ​​не предоставляет функцию сохранения или удаления, но благодаря модулю API Entity добавляются недостающие фрагменты (entity_create (), entity_save (), entity_delete (), entity_view () и entity_access ()).

Помещая это в объектно-ориентированном дизайне / программировании ...

Если вы исходите из фона OOD / P и пытаетесь лучше понять, что представляют собой эти ключевые концепции, следующее предложенное сопоставление может помочь (хотя и не строго верно с точки зрения пуриста): -

  • Тип объекта - это базовый класс
  • Расслоение - это расширенный класс
  • Поле - это элемент класса , свойство , переменная или полевой экземпляр (в зависимости от вашего предпочтения именования)
  • Сущность - это объект или экземпляр базового или расширенного класса

Все эти четыре концепции OOD / P являются особыми в том смысле, что они сериализуются (сохраняются - например, в базе данных или файле). Сериализация осуществляется через Entity API.

Установка Drupal 8 с помощью Drupal Console

Консоль Drupal

Новый CLI для Drupal. Инструмент для создания шаблона кода, взаимодействия и отладки Drupal.

Во-первых, нам нужно установить Drupal Console.

Консоль Drupal необходима не только для этого времени, но и для будущих установок.

# Run this in your terminal to get the latest project version:
curl https://drupalconsole.com/installer -L -o drupal.phar

# Or if you don't have curl:
php -r "readfile('https://drupalconsole.com/installer');" > drupal.phar

# Accessing from anywhere on your system:
mv drupal.phar /usr/local/bin/drupal

# Apply executable permissions on the downloaded file:
chmod +x /usr/local/bin/drupal

# Copy configuration files to user home directory:
drupal init --override

# Check and validate system requirements
drupal check
 

Вы можете вызвать drupal list чтобы просмотреть все доступные команды.

На следующем шаге мы загрузим исходный код Drupal

drupal site:new
 

Консоль предложит вам выбрать папку для загрузки Drupal. И на следующем шаге вам будет предложено выбрать версию Drupal для загрузки. Я рекомендую выбрать последний.

Итак, когда загружен Drupal, вам необходимо установить его.

drupal site:install
 

После нескольких простых шагов ваш сайт Drupal будет готов.

С помощью этой методологии Drupal fresh install занимает от 5 до 7 минут все из командной строки.

Установка Drupal с Drush

drush dl drupal --drupal-project-rename=example
cd example
drush site-install standard --db-url='mysql://[db_user]:[db_pass]@localhost/[db_name]' --site-name=Example