proklung / bitrix-menu-builder-bundle
Bitrix menu builder bundle for Symfony + Bitrix
1.0.13
2021-06-11 12:41 UTC
Requires
- php: >=7.1
- proklung/cache-proxificator: ^1.1
- symfony/config: ~4|~5
- symfony/dependency-injection: ^3.4 || ^4.0 || ^5.0
- symfony/http-kernel: ^4.0 || ^5.0
- webarchitect609/bitrix-cache: ^1.6
Requires (Dev)
README
Получение сносного по формату - вложенного, - массива с данными на меню. Плюс кэширующее прокси.
INTERNAL
Рефактор конторского легаси (избавление от статики и т.д).
Установка
composer require proklung/bitrix-menu-builder-bundle
Использование
- Сервис
bitrix_menu_bundle.manager
(он жеProkl\BitrixMenuBuilderBundle\Services\MenuManager
) - Кэширующее прокси -
bitrix_menu_bundle.manager_cached
(он жеProkl\BitrixMenuBuilderBundle\Services\MenuManagerCached
) - Фасад -
Prokl\BitrixMenuBuilderBundle\Services\MenuManagerCachedFacade
. Если подключен соответствующий бандл. - Фасад -
Prokl\BitrixMenuBuilderBundle\Services\MenuManagerFacade
Время жизни кэша и директория управляются в конфигурации бандла (/local/config/packages/bitrix-menu-builder.yaml
) ключами
ttl_cache
и cache_dir
(относительно папки bitrix
).
По умолчанию значения 9600 и /cache/bitrix_models_bundle
.
/** * Возвращает рекурсивный массив пунктов меню. * * @param string $dir Директория, с которой начинать рекурсию. * @param string $menuType Тип меню. * @param boolean $bDisableRootLink Заменить ссылки корневого меню на * ссылку из первого дочернего элемента. * @param boolean $bUseExt Подключать файлы расширений. * @param integer $maxLevel Количество уровней для сканирования. * @param boolean $bCheckSelected Отмечать выбранные пункты. * * @return array * @throws Exception Error. */ public function getTreeMenuByDir( string $dir = '/', string $menuType = 'top', bool $bDisableRootLink = true, bool $bUseExt = true, int $maxLevel = 4, bool $bCheckSelected = true ): array {} /** * Получает один уровень меню из пути. * * @param string $dir Директория, с которой начинать рекурсию. * @param integer $level Уровень, который необходимо получить. * @param string $menuType Тип меню. * @param boolean $bUseExt Подключать файлы расширений. * * @return array */ public function getOneLevelMenu( string $dir = '/', int $level = 1, string $menuType = 'top', bool $bUseExt = true ) { }