Actions
Сборка курсов под разные типы требует набор действий. Данные наборы имеют много общего, но частично различаются. Поэтому все действия разбиты на классы-действия (Actions), которые собираются в общую логику в классах ConfigBuilder
IConfigBuilderAction
Заголовок раздела «IConfigBuilderAction»Интерфейс, который определяет только один метод do(): void. В этом методе и должны быть реализовано действие для конфигурации сборки.
ConfigBuilderAction
Заголовок раздела «ConfigBuilderAction»Имплементирует интерфейс IConfigBuilderAction, но не определяет метод do, а только добавляет свойство StaticBuild $static_build с объектом текущей сборки. Так что все классы-действия наследуются именно от этого класса
ActionsGroup
Заголовок раздела «ActionsGroup»Для упрощения работы с классами-действиями создан класс ActionsGroup, который хранит в себе массив классов-действий в свойстве array $action_classes. Этот класс имплементирует интерфейс IConfigBuilderAction, поэтому в нем определен публичный метод do, но вместо своего собственного действия вызывается do метод у всех действий из массива $action_classes.
Благодаря этому можно собрать массив действий и вызвать все действия одним методом do. А так как классы-действия и ActionsGroup имеют одинаковый интерфейс в виде метода do, то можно вкладывать группу в группу для расширения набора действий
Действия
Заголовок раздела «Действия»CopyConfigDir
Заголовок раздела «CopyConfigDir»Копирует всю директорию с файлами конфигурации в сборку. Так что в сборку изначально попадают файлы под все типы сборок, задача дальнейших действий - удалить лишние файлы
PrepareHtmlConfig
Заголовок раздела «PrepareHtmlConfig»Подготавливает index*.html файлы под определенную сборку. index.html файл попадает во все типы сборок, а index_scorm.html и index_xapi.html в соответствующие типы. Эти index.html файлы являются входными точками для открытия сборки, и именно в этих файлах хранятся все настройки сборки
PrepareHtmlConfigMultilang
Заголовок раздела «PrepareHtmlConfigMultilang»Расширяет класс PrepareHtmlConfig для добавления в сборку информации о переводах
MaybeRemoveJSPanel
Заголовок раздела «MaybeRemoveJSPanel»Удаляет файлы для JSPanel, если JSPanel выключен в сборке
PrepareTincanFile
Заголовок раздела «PrepareTincanFile»Добавляет в файл tincan.xml актуальную информацию о курсе
RemoveTinkanFile
Заголовок раздела «RemoveTinkanFile»Удаляет tincan.xml файл
PrepareImsmanifestFile
Заголовок раздела «PrepareImsmanifestFile»Добавляет в файл imsmanifest.xml актуальную информацию о курсе
RemoveImsmanifestFile
Заголовок раздела «RemoveImsmanifestFile»Удаляет imsmanifest.xml файл
RemoveXapiwrapperJS
Заголовок раздела «RemoveXapiwrapperJS»Удаляет xapiwrapper.min.js файл