2026-04-28 11:15:46 +03:00
# 禅道PMS контекст проекта
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Взаимодействие
Всегда отвечайте на русском языке.
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Обзор проекта
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
ZenTao PMS (система управления проектами) — это программное обеспечение с открытым исходным кодом, разработанное ZenTao Software (Циндао) Co., Ltd. Это первое в Китае开源 программное обеспечение для управления проектами, предназначенное для охвата основных процессов управления проектами, от управления продуктами и проектами до управления качеством, управления документацией, управления организацией и офисного управления.
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Основные характеристики
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Построен на основе PHP-фреймворка ZenTao
- Поддерживает несколько методологий управления проектами: Scrum, Waterfall и Kanban
- Полный функционал включает управление продуктами, управление проектами, управление качеством, управление документацией
- Поддержка нескольких языков (китайский, английский, немецкий, французский и др.)
- Богатые модули включают визуализацию данных, метрики, DevOps, управление документами, автоматизированное тестирование
- Версия 21.7.5 (согласно файлу VERSION)
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Архитектура
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
ZenTao использует модульную MVC-архитектуру:
- **Фреймворк**: пользовательский PHP-фреймворк, расположенный в `/framework`
- **Модули**: функциональные модули в `/module` (например, продукт, проект, исполнение, дефект, задача и т.д.)
- **База данных**: на основе MySQL, схема определена в `/db/zentao.sql`
- **В е б -интерфейс**: веб-приложение на PHP, расположенное в `/www`
- **Конфигурация**: централизованная конфигурация в `/config`
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Структура проекта
2026-04-28 10:49:55 +03:00
```
zentaopms/
2026-04-28 11:15:46 +03:00
├── api/ # Файлы, связанные с API
├── bin/ # Исполняемые двоичные файлы/скрипты
├── config/ # Файлы конфигурации
├── db/ # Файлы схемы базы данных
├── doc/ # Документация
├── extension/ # Расширения
├── framework/ # Основные файлы фреймворка
├── lib/ # Библиотеки
├── misc/ # Различные файлы
├── module/ # Модули приложения
├── sdk/ # Комплекты для разработки ПО
├── tmp/ # Временные файлы
├── www/ # Корневая директория веб-сервера
└── README.md # Документация проекта
2026-04-28 10:49:55 +03:00
```
2026-04-28 11:15:46 +03:00
## Сборка и запуск
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Предварительные требования
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- PHP 8.1 или выше
- База данных MySQL
- В е б -сервер Apache или Nginx
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Процесс сборки
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
Проект использует Makefile для сборки:
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
1. **Очистка среды сборки** : `make clean`
2. **Сборка приложения** : `make` или `make all`
3. **Создание пакета** : `make package`
4. **Создание дистрибутива** : `make pms`
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
Процесс сборки:
- Копирует необходимые файлы в директорию `zentaopms`
- Обрабатывает и сжимает ресурсы JavaScript/CSS
- Устанавливает соответствующие разрешения
- Создает дистрибутивные пакеты (ZIP, tar.xz)
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Установка
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
1. Распакуйте дистрибутивный пакет в директорию веб-сервера
2. Настройте параметры базы данных в `config/my.php` (скопируйте из `config/config.php` )
3. Перейдите к веб-интерфейсу и следуйте инструкциям мастера установки
4. Если не установлено, система автоматически перенаправит на `install.php`
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Запуск в среде разработки
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
1. Поместите исходный код в корневую директорию веб-сервера
2. Настройте веб-сервер для обслуживания PHP-файлов
3. Убедитесь, что следующие директории доступны для записи:
2026-04-28 10:49:55 +03:00
- `tmp/`
- `www/data/`
- `config/`
- `extension/`
2026-04-28 11:15:46 +03:00
### Запуск в производственной среде
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
1. Соберите дистрибутивный пакет с помощью `make pms`
2. Распакуйте на производственном сервере
3. Установите соответствующие разрешения для директорий
4. Настройте подключение к базе данных в `config/my.php`
5. Получите доступ через веб-браузер для завершения установки
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Конфигурация
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Основная конфигурация
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
Основная конфигурация находится в `config/config.php` , важные настройки включают:
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Настройки подключения к базе данных
- Конфигурация маршрутизации запросов
- Настройки языка и темы оформления
- Настройки безопасности
- Ограничения на загрузку файлов
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Пользовательская конфигурация
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
Создайте `config/my.php` для переопределения настроек по умолчанию:
- Скопируйте из `config/config.php`
- Измените настройки подключения к базе данных
- Отрегулируйте другие конфигурации по мере необходимости
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Конфигурация базы данных
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
Таблицы базы данных определены как константы в `config/zentaopms.php` :
- Префикс таблиц: по умолчанию `zt_`
- Более 100 таблиц для различных функций
- Схема определена в `db/zentao.sql`
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Правила разработки
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Структура кода
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Следует MVC-паттерну с моделями, представлениями и контроллерами
- Модули организованы в директориях `/module/{module}/`
- Каждый модуль обычно содержит:
- `model.php` : бизнес-логика
- `control.php` : действия контроллера
- `view/` : файлы шаблонов
- `lang/` : языковые файлы
- `js/` : JavaScript для конкретного модуля
- `css/` : CSS для конкретного модуля
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Маршрутизация
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Маршрут по умолчанию: `index.php?m={module}&f={method}`
- Маршрутизация PATH_INFO: `index.php/{module}-{method}`
- Пользовательские маршруты API могут быть определены в `config/routes.php`
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Доступ к базе данных
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Использует пользовательский паттерн DAO (объект доступа к данным)
- Определен в `lib/base/dao/`
- Пример: `$this->dao->select('*')->from(TABLE_USER)->where('id')->eq($id)->fetch()`
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
### Тестирование
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Тесты находятся в `test/` в директориях модулей
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Основные модули
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
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
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## API и интеграции
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- RESTful API через `api.php`
- Поддержка вебхуков для интеграции
- Поддержка GitLab, Gogs, Gitea, Jenkins, SonarQube
- Интеграция Xuanxuan для обмена сообщениями
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Безопасность
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Валидация и фильтрация ввода
- Защита от XSS
- Защита от CSRF
- Предотвращение SQL-инъекций через DAO
- Ограничения на загрузку файлов
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
## Интернационализация
2026-04-28 10:49:55 +03:00
2026-04-28 11:15:46 +03:00
- Поддержка нескольких языков, языковые файлы в `/module/{module}/lang/`
- Поддерживаемые языки: упрощенный китайский, традиционный китайский, английский, немецкий, французский, вьетнамский, японский, испанский, португальский, русский
- Выбор языка можно настроить в пользовательских предпочтениях