znt/QWEN.md

10 KiB
Raw Permalink Blame History

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