10 KiB
禅道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 для сборки:
- Очистка среды сборки:
make clean - Сборка приложения:
makeилиmake all - Создание пакета:
make package - Создание дистрибутива:
make pms
Процесс сборки:
- Копирует необходимые файлы в директорию
zentaopms - Обрабатывает и сжимает ресурсы JavaScript/CSS
- Устанавливает соответствующие разрешения
- Создает дистрибутивные пакеты (ZIP, tar.xz)
Установка
- Распакуйте дистрибутивный пакет в директорию веб-сервера
- Настройте параметры базы данных в
config/my.php(скопируйте изconfig/config.php) - Перейдите к веб-интерфейсу и следуйте инструкциям мастера установки
- Если не установлено, система автоматически перенаправит на
install.php
Запуск в среде разработки
- Поместите исходный код в корневую директорию веб-сервера
- Настройте веб-сервер для обслуживания PHP-файлов
- Убедитесь, что следующие директории доступны для записи:
tmp/www/data/config/extension/
Запуск в производственной среде
- Соберите дистрибутивный пакет с помощью
make pms - Распакуйте на производственном сервере
- Установите соответствующие разрешения для директорий
- Настройте подключение к базе данных в
config/my.php - Получите доступ через веб-браузер для завершения установки
Конфигурация
Основная конфигурация
Основная конфигурация находится в 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/ - Поддерживаемые языки: упрощенный китайский, традиционный китайский, английский, немецкий, французский, вьетнамский, японский, испанский, португальский, русский
- Выбор языка можно настроить в пользовательских предпочтениях