Что нового в 5.7 для разработчиков

Информация о новых версиях cms concrete5

Что нового в 5.7 для разработчиков

Сообщение cmsservice » 24 апр 2014, 17:45 ,  »  Сообщение:#1

Не так давно, Эндрю опубликовал на своем сайте статью о том, чем же "грозит" разработчикам выход версии 5.7. Вольное изложение этого материала я Вам и предлагаю. Для владеющих английским языком - прямой линк
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку


  1. То что 5.7 теперь требует PHP 5.3+, про это уже все знают и это объективное требование, ниже будет понятно почему.
  2. Плохая новость: 5.7 не совместим по API с 5.6.x. Т.е. расширения будут нуждаться в существенной переделке. С простыми расширениями все просто, есть даже 2 урока в How-To's о том как взять расширение для 5.6 и переделать в расширение для 5.7. А вот со сложными (которые мы преимущественно разрабатываем) придется по@#$ться.
  3. Полностью реорганизован код CMS. Нет более таких директорий, как models, libraries или helpers. Вместо этого есть одна директория - core, в которой все.
  4. Помашем ручкой декларативному программированию, например привычной нам строчке: defined('C5_EXECUTE') or die("Access Denied.");. Теперь внутри CMS весь код организован в пространство имен (namespaces) Concrete, в том числе блоки, атрибуты, пакеты и т.п.
  5. В 5.6 активно использовались классы из Zend Framework (лежали в concrete/libraries/3rdparty/Zend). 5.7 не менее активно использует Symfony2 (маршрутизация, система реквестов и респонсов, сессии, куки и события).
  6. Перепроектирована MVC. В частности в 5.7 отказываемся от tools'ов, все действия делаем внутри соответствующего контроллера (это и сейчас можно делать), а интерфейс во view.php (кстати можно использовать несколько разных отображений в зависимости от необходимости, мы это и сейчас используем).
  7. Убраны из кода всякие странные хаки (например: использование метода on_page_view в контроллере блока, чтобы подключить кастомные css и js, теперь все можно сделать в методе view).
  8. Помашем ручкой классу Loader, автозагрузка рулит (PSR-4 autoloading).
  9. Есть желание поощрить Test Driven разработку, т.е. облегчить нам написание unit-тестов к своему коду во время разработки (мы и сейчас пишем, но это не особо поддержано в С5, как например в Drupal, где разработчик не может добавить расширение, не покрытое тестами, в магазин расширений).
  10. Новая Assets system. Полезно при расширений ядра системы.
  11. Используется Laravel IoC Container - мощное средство для управления зависимостями классов. Внедрение зависимостей — это способ исключения вшитых (hardcoded) взаимосвязей классов. Вместо этого зависимости определяются во время выполнения, что даёт бо́льшую гибкость благодаря тому, что они могут быть легко изменены.
    Понимание Laravel IoC Container необходимо для тех, кто строит большие и мощные приложения, так же как и для внесения изменений в код ядра. Короче, не знаю как для кого, но для нас очень полезная штучка будет.
  12. Помашем ручкой ADODB. В 5.7 интегрированы Doctrine DBAL и Doctrine ORM (давно пора, я счетаю). Теперь есть класс BlockType работающий через Doctrine ORM, как доказательство концепции, хотя в текущей версии все еще много фактов прямого доступа к базе данных. В этой части, кстати, сохранена обратная совместимость. Был написан слой совместимости. Также есть AXMLS анализатор для старых блоков и пакетов (для анализа db.xml и иже с ними). Но жить этой прокладке скорее всего недолго.
  13. Больше нет файлов config/site_events.php, config/site_autoload.php и config/site_post.php. Вместо этого, есть один application/config/app.php, который может содержать все что угодно.
  14. Как можно было уже заметить из пункта 13, теперь все переопределения (и я полагаю аддоны) живут в директории application/
  15. Много старого кода JavaScript было обновлено и переработано.
  16. Хорошая новость: какое-то время будут параллельно поддерживаться и развиваться две ветки 5.6.x и 5.7.

В общем как-то так. :)
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва

Re: Что нового в 5.7 для разработчиков

Сообщение MonoStas » 29 апр 2014, 18:18 ,  »  Сообщение:#2

Ну в общем чувствую получили мы Symfony2 CMS demo v 0.0.1
Ну это хорошо. Немножко в тему расскажу нашу историю.

Может кто из бывалых знает, что мы делали наш проект
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
на Concrete 5.6. И... мы запарились, потратили кучу времени впустую, пока пытались что-то изучить, пока ковырялись, пытаясь вникнуть во все тонкости Concrete, мы попросту теряли время. Так мы просидели почти всю осень 2013 года, еле-еле что-то двигалось. И 2014 год ознаменовал нам новую эпоху. Мы прозрели.

Решили написать полностью с нуля угадайте на чём? - на Симфони2 :)
В итоге меньше, чем через месяц (в феврале) мы уже запустились. Начали писать в январе.

Сейчас почти май и мы вот-вот запускаем автоматическую систему бронирования типа как у Букинга, которая будет обрабатывать брони, посылать запросы по смс, формировать счета, е-мейлы, кучу смсок, прикрутили Робокассу и у нас реально крутая админка на Sonata Bundle.

И всё это мы написали в двоём (программист на симфони и верстальщик - я) по вечерам и выходным, в свободное от работы время. Мне очень полюбился twig шаблонизатор и вообще всё у нас здорово.

И тут новость - выходит Concrete 5.7 с кучей наработок из Симфони2 и Доктриной ORM (по некоторым сведениям доктрина прикручена через костыли).

И для кого эта CMS? - для новичков, которые хотят сделать хоумпейдж для бабули-врача, или серьёзное и мощное орудие в Ваших руках?
Пользую: CentOS 6.5, Ubuntu, Nginx, PHP, MySQL, Python, Sublime Text 3, CSS3, HTML5, jQuery...... Concrete5 (-;
Аватара пользователя
MonoStas
 
Сообщения: 80
Зарегистрирован: 11 окт 2012, 19:21
Откуда: Москва

Re: Что нового в 5.7 для разработчиков

Сообщение guyasyou » 30 апр 2014, 19:42 ,  »  Сообщение:#3

Для меня,
Пожалуйста зарегистрируйтесь, чтобы увидеть ссылку
, нужен мастер Simfony)))

А про обнову: расстраивает конечно, что старые модули могут слететь. Страшно просто взять и обновиться на него. Старые сайты обновлять не буду, а новые можно будет и на нем сразу клепать.

MonoStas писал(а):И для кого эта CMS? - для новичков, которые хотят сделать хоумпейдж для бабули-врача, или серьёзное и мощное орудие в Ваших руках?

Может для новичка, который хочет сделать что-то серьезное и крупное))
www.pure-web.ru - fullstack разработка сайтов и веб-приложений
Аватара пользователя
guyasyou
Администратор
 
Сообщения: 559
Зарегистрирован: 05 янв 2012, 12:29
Откуда: Новосибирск

Re: Что нового в 5.7 для разработчиков

Сообщение Count_Raven » 30 апр 2014, 23:31 ,  »  Сообщение:#4

MonoStas писал(а):(по некоторым сведениям доктрина прикручена через костыли)

Костыли там как раз сделаны для ADODB, чтобы пока еще сохранить совместимость при работе со старыми методами. В дальнейшем их полностью выкинут.
Country Amiant - Regno All Rianto
Аватара пользователя
Count_Raven
Супермодератор
 
Сообщения: 1156
Зарегистрирован: 06 окт 2010, 15:00
Откуда: Country Amiant

Re: Что нового в 5.7 для разработчиков

Сообщение cmsservice » 12 май 2014, 12:32 ,  »  Сообщение:#5

MonoStas писал(а):И для кого эта CMS? - для новичков, которые хотят сделать хоумпейдж для бабули-врача, или серьёзное и мощное орудие в Ваших руках?

Тут вопрос значительно более глубокий: для чего и нужна CMS разработчику?

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

Таким образом для разработчика хорошая CMS позволяет снять с себя рутинные и типовые задачи (например управление страницами), но при этом позволяет активно пользоваться CMF для решения специализированных задач. Мое ИМХО, что C5 на эту роль подходит не хуже других и будет подходить еще лучше в новой версии.

Итого:

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

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

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

Кроме того, использование CMS позволяет несколько лучше масштабировать бизнес веб-разработки заказных решений, который, прямо скажем, не очень хорошо масштабируется.
С уважением, Константин
http://Переделка-сайтов.РФ
Индивидуальные решения на платформе Concrete5 для театров и производственно-торговых компаний.
Аватара пользователя
cmsservice
 
Сообщения: 763
Зарегистрирован: 10 окт 2010, 00:10
Откуда: Москва


Вернуться в Релизы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron