znt/QWEN.md

183 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 禅道PMS контекст проекта
## Взаимодействие
Всегда отвечайте на русском языке.
## Обзор проекта
ZenTao PMS (система управления проектами) — это программное обеспечение с открытым исходным кодом, разработанное ZenTao Software (Циндао) Co., Ltd. Это первое в Китае开源 программное обеспечение для управления проектами, предназначенное для охвата основных процессов управления проектами, от управления продуктами и проектами до управления качеством, управления документацией, управления организацией и офисного управления.
### Основные характеристики
- Построен на основе PHP-фреймворка ZenTao
- Поддерживает несколько методологий управления проектами: Scrum, Waterfall и Kanban
- Полный функционал включает управление продуктами, управление проектами, управление качеством, управление документацией
- Поддержка нескольких языков (китайский, английский, немецкий, французский и др.)
- Богатые модули включают визуализацию данных, метрики, DevOps, управление документами, автоматизированное тестирование
- Версия 21.7.5 (согласно файлу VERSION)
### Архитектура
ZenTao использует модульную MVC-архитектуру:
- **Фреймворк**: пользовательский PHP-фреймворк, расположенный в `/framework`
- **Модули**: функциональные модули в `/module` (например, продукт, проект, исполнение, дефект, задача и т.д.)
- **База данных**: на основе MySQL, схема определена в `/db/zentao.sql`
- **Веб-интерфейс**: веб-приложение на PHP, расположенное в `/www`
- **Конфигурация**: централизованная конфигурация в `/config`
## Структура проекта
```
zentaopms/
├── api/ # Файлы, связанные с API
├── bin/ # Исполняемые двоичные файлы/скрипты
├── config/ # Файлы конфигурации
├── db/ # Файлы схемы базы данных
├── doc/ # Документация
├── extension/ # Расширения
├── framework/ # Основные файлы фреймворка
├── lib/ # Библиотеки
├── misc/ # Различные файлы
├── module/ # Модули приложения
├── sdk/ # Комплекты для разработки ПО
├── tmp/ # Временные файлы
├── www/ # Корневая директория веб-сервера
└── README.md # Документация проекта
```
## Сборка и запуск
### Предварительные требования
- PHP 8.1 или выше
- База данных MySQL
- Веб-сервер Apache или Nginx
### Процесс сборки
Проект использует Makefile для сборки:
1. **Очистка среды сборки**: `make clean`
2. **Сборка приложения**: `make` или `make all`
3. **Создание пакета**: `make package`
4. **Создание дистрибутива**: `make pms`
Процесс сборки:
- Копирует необходимые файлы в директорию `zentaopms`
- Обрабатывает и сжимает ресурсы JavaScript/CSS
- Устанавливает соответствующие разрешения
- Создает дистрибутивные пакеты (ZIP, tar.xz)
### Установка
1. Распакуйте дистрибутивный пакет в директорию веб-сервера
2. Настройте параметры базы данных в `config/my.php` (скопируйте из `config/config.php`)
3. Перейдите к веб-интерфейсу и следуйте инструкциям мастера установки
4. Если не установлено, система автоматически перенаправит на `install.php`
### Запуск в среде разработки
1. Поместите исходный код в корневую директорию веб-сервера
2. Настройте веб-сервер для обслуживания PHP-файлов
3. Убедитесь, что следующие директории доступны для записи:
- `tmp/`
- `www/data/`
- `config/`
- `extension/`
### Запуск в производственной среде
1. Соберите дистрибутивный пакет с помощью `make pms`
2. Распакуйте на производственном сервере
3. Установите соответствующие разрешения для директорий
4. Настройте подключение к базе данных в `config/my.php`
5. Получите доступ через веб-браузер для завершения установки
## Конфигурация
### Основная конфигурация
Основная конфигурация находится в `config/config.php`, важные настройки включают:
- Настройки подключения к базе данных
- Конфигурация маршрутизации запросов
- Настройки языка и темы оформления
- Настройки безопасности
- Ограничения на загрузку файлов
### Пользовательская конфигурация
Создайте `config/my.php` для переопределения настроек по умолчанию:
- Скопируйте из `config/config.php`
- Измените настройки подключения к базе данных
- Отрегулируйте другие конфигурации по мере необходимости
### Конфигурация базы данных
Таблицы базы данных определены как константы в `config/zentaopms.php`:
- Префикс таблиц: по умолчанию `zt_`
- Более 100 таблиц для различных функций
- Схема определена в `db/zentao.sql`
## Правила разработки
### Структура кода
- Следует MVC-паттерну с моделями, представлениями и контроллерами
- Модули организованы в директориях `/module/{module}/`
- Каждый модуль обычно содержит:
- `model.php`: бизнес-логика
- `control.php`: действия контроллера
- `view/`: файлы шаблонов
- `lang/`: языковые файлы
- `js/`: JavaScript для конкретного модуля
- `css/`: CSS для конкретного модуля
### Маршрутизация
- Маршрут по умолчанию: `index.php?m={module}&f={method}`
- Маршрутизация PATH_INFO: `index.php/{module}-{method}`
- Пользовательские маршруты API могут быть определены в `config/routes.php`
### Доступ к базе данных
- Использует пользовательский паттерн DAO (объект доступа к данным)
- Определен в `lib/base/dao/`
- Пример: `$this->dao->select('*')->from(TABLE_USER)->where('id')->eq($id)->fetch()`
### Тестирование
- Тесты находятся в `test/` в директориях модулей
## Основные модули
ZenTao имеет обширную модульную структуру:
- **Управление продуктами**: product, story, productplan, release
- **Управление проектами**: project, execution, task, build
- **Управление качеством**: bug, testcase, testtask, testsuite
- **Управление документацией**: doc, doclib
- **Управление организацией**: company, dept, user, group
- **DevOps**: repo, job, compile, mr
- **Отчеты**: report, pivot, chart
- **Администрирование**: admin, custom, extension
## API и интеграции
- RESTful API через `api.php`
- Поддержка вебхуков для интеграции
- Поддержка GitLab, Gogs, Gitea, Jenkins, SonarQube
- Интеграция Xuanxuan для обмена сообщениями
## Безопасность
- Валидация и фильтрация ввода
- Защита от XSS
- Защита от CSRF
- Предотвращение SQL-инъекций через DAO
- Ограничения на загрузку файлов
## Интернационализация
- Поддержка нескольких языков, языковые файлы в `/module/{module}/lang/`
- Поддерживаемые языки: упрощенный китайский, традиционный китайский, английский, немецкий, французский, вьетнамский, японский, испанский, португальский, русский
- Выбор языка можно настроить в пользовательских предпочтениях