Website development
PHP
Drupal
November 2015 20

Вышел Drupal 8 — критический взгляд


После четырёх лет разработки наконец вышла стабильная версия Drupal 8. При этом реакция сообщества оказалась довольно разделенной, одни считают, что этот релиз имеет все шансы полностью свергнуть и заменить Wordpress, другие, что после стольких лет Drupal растерял большинство пользовательской базы и вряд ли соберет ее обратно. Вся причина в иной идеологии чем в других CMS, Drupal 8 делает упор на расширяемость и удобство разработки вместо просто редактирования контента. Как результат по-настоящему оценить его можно будет только года через два, когда уже наполнится база модулей. Но раз он уже вышел, то попробуем посмотреть на ту функциональность, какая есть с точки зрения разработки уже сегодня.

Symfony 2
Еще с самого начала самая нашумевшая новость была о переходе на компоненты Symfony 2. Это сильно упрощает порог входа для тех разработчиков которые уже с ними знакомы, но может отпугнуть многих привыкших к функциональному программированию на Wordpress. А ведь ассортимент плагинов зависит от размера сообщества и является важным фактором при выборе CMS. Кстати стоит заметить что Symfony2 не самый быстрый фреймворк, что приводит к следующему пункту.

Скорость работы
Бенчмарки беты показывали упадок в скорости в 3-4 раза в сравнении с Drupal 7, который сам был намного медленнее Wordpress.

image

Но infanty убедил меня попробовать сделать отдельный бенчмарк, я создал DigitalOcean дроплет за 5$/месяц и вот его результаты:

Кэш включен

#siege -b -c20 -t60S http://xxxxxxxx/drupal7/taxonomy/term/1

Transactions:		       11892 hits
Availability:		      100.00 %
Elapsed time:		       59.10 secs
Data transferred:	       36.69 MB
Response time:		        0.10 secs
Transaction rate:	      201.22 trans/sec
Throughput:		        0.62 MB/sec
Concurrency:		       19.93
Successful transactions:       11892
Failed transactions:	           0
Longest transaction:	        1.31
Shortest transaction:	        0.03


#siege -b -c20 -t60S http://xxxxxxxx/drupal8/taxonomy/term/1

Transactions:		        5843 hits
Availability:		      100.00 %
Elapsed time:		       59.84 secs
Data transferred:	       20.48 MB
Response time:		        0.20 secs
Transaction rate:	       97.64 trans/sec
Throughput:		        0.34 MB/sec
Concurrency:		       19.96
Successful transactions:        5843
Failed transactions:	           0
Longest transaction:	        1.36
Shortest transaction:	        0.07


Больше чем в два раза медленнее в сравнении с предыдущей версией!
Еще один бенчмарк родившейся благодаря chilic из сегодняшнего холивора: devhell.ru/drupal-7-vs-drupal-8-performance

Встроенный CKEditor
Найти красивый WYSIWYG редактор для Drupal 7 всегда было проблемой. Стандартный редактор имел очень сильно урезанный функционал и выглядел как дитя 90-х, особенно на фоне встроенного редактора Wordpress. Сегодняшний CKEditor выглядит уже намного лучше.

image

Все дальше нет менеджера рисунков
Загрузить рисунок в статью можно, но функционал существенно урезан. В Wordpress есть менеджер загрузок, автоматический ресайз под несколько размеров, даже банальное удаление. В Drupal 8 можно просто загрузить и вставить. Конечно, со временем кто-то сделает модуль с нужным функционалом, но пока ничего нет.

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

image

Views из коробки
Самый популярный плагин из Drupal 7 позволяющий строить произвольные списки контента, виджеты и прочее теперь доступен из коробки. Фактически он являлся киллер фичей, так что его включение в Core не может не радовать.

Twig
Drupal 8 теперь использует тот же шаблонизатор что и Symfony2. Хорошее решение, думаю, многим понравится.

Встроенная мультиязычность
Выглядит очень хорошо и вполне может стать точкой выбора Drupal 8 для многих сайтов.

Под капотом



REST API
Очень интересная фича, открывающая много возможностей по связке сайта, например, с мобильными приложениями.

Свой стиль кода
Я очень надеялся, что если они уж решили взять Symfony2 за основу, то будут использовать и их стандарт кода, но нет. Вместо привычного PSR-2 нас ждет свой стиль кода основан на старом PEAR стандарте.

Не совсем ООП
Если вас раздражали всяческие хуки, массивы и магические строки в Drupal 7, которые надо было знать наизусть и вы ожидали красивого ООП подхода, то тут тоже немного разочарование. По коду все равно бегают массивы, магические строки перекочевали из хуков в .yml файлы конфигурации. Но зато есть DI контейнер.

Свой ORM
Идея построить Drupal 8 на Doctrine прошла только частично, из нее используется только парсер для аннотаций. Как минимум можно было взять еще и DBAL. В любом случае, как раз ORM самая часто использованная часть после может темплейтинга, было бы хорошо не изобретать новый велосипед.

Мои мысли


Не думаю, что он пошатнет Wordpress. Скорость работы и разработки являются критическими факторами для множества компаний, делающих сайты под заказ. Скорее всего, он займет нишу фреймворка для более сложных сайтов, может, даже чуть-чуть заменив на рынке саму Symfony2.

Попробовать Drupal 8 можно тут (нужна регистрация, но не надо подтверждать email).
+12
36.4k 37
Comments 51
Top of the day