D7 – новая платформа разработки сайтов и порталов Тушинский Юрий Технический директор Битрикс Цели новой платформы Современный код Понятный код Удобный код Быстрый код Отсутствие исторически возникших «хвостов и костылей» Современный код Использование последних версий серверного ПО: PHP 5.3, MySQL 5. Поддержка mysqli. Отказ от MSSQL ODBC. Полноценное использование ООП. Использование исключений (exceptions). Понятный код Единообразие API. Единое новое правило форматирования кода. Комментарии phpDoc. Архитектура на ООП, отсутствие спагетти-кода, слабая связанность. Отсутствие глобальных переменных Использование паттернов программирования. Не умалчиваем ошибки разработки (exceptions). Удобный код Удобная работа в IDE. Удобный код Поддержка систем контроля версий (папка /local/ для хранения всего своего из папки /bitrix/ - components/, templates/, modules/. Папку /bitrix/ в исключения системы контроля версий). Поддержка новых типов: дата, время, файлы (не строки, числа как сейчас). Большая библиотека готовых классов для любых случаев. События везде. Возможность модификации и интеграции при помощи обработчиков. Быстрый код Автозагрузка везде (autoload) Специализированные обработчики для разных ситуаций – типы приложений (http, cli), типы страниц (публичные, административные, «быстрые» AJAX страницы). Отложенная загрузка языковых файлов. Отсутствие исторически возникших «хвостов и костылей» Полностью новый код. Мы не «подтачиваем» старый код. Переосмысливаем что есть. Перепроектируем с учетом опыта и современных реалий. Пишем новые классы. Старый код может попасть в D7 только после рефакторинга и переаттестации. D7 Библиотека классов. ORM (построитель запросов) c noSQL. Новый жизненный цикл страницы. Классы для разных страниц и разных приложений. Глобальные объекты (для доступа к данным запроса и ответа). Провайдеры объектов для основных операций (кеш, лог). Дополнительно Компоненты с ООП (class.php) – возможность писать более структурированный код компонент и возможность наследования. Передача параметров компонента на «быстрые» страницы – теперь не нужно для AJAX запросов вызывать всю страницу. Репозитарий всех подключений компонентов – позволит находить где находятся нужные страницы. Одностраничный шаблон сайта – один файл шаблона, нет отложенных функций. Как подключить и начать пользоваться Первый этап - режим тестирования: проверяем как работает старое ядро совместно с новым. Текущее (старое) подключение: header.php + footer.php Как подключить и начать пользоваться Второй этап - режим совместимости: разрабатываем на D7, но с возможностью использования старого ядра (глобальные переменные, старые модули, события). Третий этап - режим D7: исполняется только новый чистый код (выключатель в настройках). Этапы внедрения новой платформы Сейчас: Публикация архитектуры Публичные обсуждения Тестирование Сейчас еще можно что-то изменить! С 12.5 мы завершаем разработку ядра, фиксируем и стабилизируем API. К лету первый сайт полностью на D7 без режима совместимости. Спасибо за внимание! Вопросы?