Директория managers
Пренадназначение этой директории прост. В данной директории создаются функции которые будут управлять какой-то функциональностью.
Например:
В директории core/managers есть файл exceptions.py в данном файле написана логика отображений исключений.
Данный файл будет управлять исключениями от WebCms.
Так же есть файл theme.py. Данный файл выполняет функциональность по отображению и правильным рендером html тем.
Подробнее про всех файлов будет ниже.
Правила для работы с директорией managers
У каждой директории ядра есть свои правила. Директория core/managers тоже не исключение. Тут стоит подчеркнуть что за несоблюдение правил, мы можем отказаться от вашего pull запроса
Правила для работы с директорией managers:
-
При создании файла в директории стоит назвать его так, чтобы было проще понять, что он конкретно делает.
-
Не стоит добавлять к названии файла лишние суффиксы по типу
(название файла)manager.pyили жеusermanager.py (так делать нельзя) -
При названии файла не стоит использовать заглавные буквы.
Только прописные! -
Важно! После создании файла. Называйте класс следующим примером: Файл
users.py, классclass UsersManager:. -
Так же важно! Не забывайте ставить DocString Учтите! Кроме вас ещё будут те кто будут работать с вашим кодом. И проще будет если вы будете комментировать каждый метод и класс который пишете!
Файлы директории managers
Ниже приведены все файлы которые есть в core/managers
Так же они будут часто обновляться.
Controllers
Название файла: controller.py
Управление mvc. MVC это Model Views Controller - схема разделения данных приложения и управляющей логики на три отдельных компонента: модель, представление и контроллер. Это дополнительный менеджер который будет отображать, добавлять дополнительные переменные к загружаемой теме. Рендер происходит при помощи Jinja2
Классы: ControllersManager()
Методы: ControllersManager.render_action(template_name, *context)
Данный метод рендерит html файл с директории content/theme/{активная тема}/{template_name}
{template_name} - переданный агрумент template_name
Аргументы:
-
template_name: string - Название html файла который нужно отобразить, например
index.htmlможно указать директорию тожеincludes/index.html -
**context - Передача переменных в загружаемый шаблон
Logging
Название файла: logging.py
Логирование в консоль. Данный файл представляет собой ничто не иное как красивое логирование в консоль. Это функция была сделана для удобного вывода состояний в консоль. Так же это сделана для разработчиков плагинов тоже.
Классы:
- LoggingManager()
- Log(output, type)
Вызов класса Log
Вызов: Log("Test", 3)
Ответ: [success {timestamp}]: Test
Аргументы:
- output: string - Строка которую нужно отобразить в консоли
- type: int - Индекс типа ответа. Есть всего 4 индексов типа
Индексы типа:
-
0- Info, Этот индекс типа нужен если нужно просто вывести сообщение в консоль. Что то по типу debug в logging. -
1- Warning, Этот индекс типа нужен если нужно предупредить. Но это не будет критической ошибкой что помешает работе кода. -
2- Error, Критическая ошибка. Этот индекс типа нужен если где то произошло критическая ошибка и код где это произошло не будет работать.ч -
3- Success, Этот индекс типа нужен если код выполнился успешно. И без никаких ошибок. Часто этот индекс используется в WEBCMS CLI.