183 lines
10 KiB
Markdown
183 lines
10 KiB
Markdown
# 禅道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/`
|
||
- Поддерживаемые языки: упрощенный китайский, традиционный китайский, английский, немецкий, французский, вьетнамский, японский, испанский, португальский, русский
|
||
- Выбор языка можно настроить в пользовательских предпочтениях |