项目架构
系统架构概览
本资产管理系统采用现代化的分层架构设计,基于Symfony框架构建,遵循MVC设计模式和领域驱动设计(DDD)原则。系统采用模块化设计,支持高并发、高可用和可扩展的企业级应用需求。
技术架构
1. 技术栈组成
本图展示了系统的四层架构设计,从用户界面到数据存储的完整技术栈。每一层都有明确的职责分工,通过依赖关系实现松耦合的架构设计。
graph TB subgraph "前端层 (Frontend)" A1[EasyAdminBundle] A2[Bootstrap 5] A3[JavaScript] A4[Chart.js] A5[Twig Templates] A6[Stimulus] A7[Turbo] A8[Asset Mapper] end subgraph "应用层 (Application)" B1[Symfony 7.x] B2[EasyAdmin] B3[Controllers] B4[Services] B5[Event Listeners] B6[Commands] B7[Middleware] B8[Validators] end subgraph "领域层 (Domain)" C1[Entities] C2[Repositories] C3[Value Objects] C4[Events] C5[Business Logic] C6[Domain Rules] C7[Aggregates] C8[Services] end subgraph "基础设施层 (Infrastructure)" D1[Doctrine ORM] D2[Database] D3[File Storage] D4[Cache] D5[VichUploader] D6[Redis] D7[Logging] D8[Security] end A1 --> B1 A2 --> B2 A3 --> B3 A4 --> B4 A5 --> B5 A6 --> B6 A7 --> B7 A8 --> B8 B1 --> C1 B2 --> C2 B3 --> C3 B4 --> C4 B5 --> C5 B6 --> C6 B7 --> C7 B8 --> C8 C1 --> D1 C2 --> D2 C3 --> D3 C4 --> D4 C5 --> D5 C6 --> D6 C7 --> D7 C8 --> D8
架构说明:
- 前端层:负责用户交互,提供响应式界面和丰富的用户体验
- 应用层:处理业务逻辑,协调各组件之间的交互
- 领域层:包含核心业务规则和实体,确保业务逻辑的完整性
- 基础设施层:提供数据持久化、缓存、安全等基础服务
2. 核心框架与组件
后端框架
- Symfony 7.x: 核心PHP框架,提供依赖注入、事件系统、安全组件
- Doctrine ORM: 对象关系映射,数据库抽象层
- EasyAdminBundle: 管理界面生成器,快速构建CRUD操作
- VichUploaderBundle: 文件上传管理,支持多种存储后端
前端技术
- Twig: 模板引擎,支持模板继承和组件化
- Bootstrap 5: 响应式UI框架
- Stimulus: 轻量级JavaScript框架
- Chart.js: 数据可视化图表库
- Turbo: 单页应用体验,无需重载页面
数据存储
- PostgreSQL: 主数据库,支持复杂查询和事务
- Redis: 缓存和会话存储
- 文件系统: 多媒体文件存储
系统分层架构
1. 表现层 (Presentation Layer)
管理界面 (Admin Interface)
// 控制器结构
src/Controller/Admin/
├── DashboardController.php // 仪表板控制器
├── AssetCrudController.php // 固定资产CRUD
├── IntangibleCrudController.php // 无形资产CRUD
├── CategoryCrudController.php // 分类管理
├── InventoryCrudController.php // 库存管理
├── MaintenanceApplicationCrudController.php // 维护申请
├── UserCrudController.php // 用户管理
└── ...
自定义字段组件
// 自定义字段
src/Admin/Field/
├── CoordsField.php // 坐标字段
├── MapField.php // 地图字段
└── VichImageField.php // 图片上传字段
模板系统
templates/
├── admin/
│ ├── field/
│ │ ├── images_display.html.twig // 图片展示
│ │ ├── videos_display.html.twig // 视频展示
│ │ └── files_display.html.twig // 文件展示
│ └── asset_detail.html.twig // 资产详情页
├── base.html.twig // 基础模板
└── dashboard.html.twig // 仪表板
2. 应用层 (Application Layer)
服务层 (Service Layer)
src/Service/
├── DashboardData.php // 仪表板数据服务
├── SysinfoService.php // 系统信息服务
└── VideoThumbnailService.php // 视频缩略图服务
事件监听器
src/EventListener/
├── AssetListener.php // 资产事件监听
└── ...
命令处理
src/Command/
└── ...
3. 领域层 (Domain Layer)
核心实体 (Core Entities)
src/Entity/
├── Asset.php // 资产实体
├── Category.php // 分类实体
├── Organization.php // 组织实体
├── User.php // 用户实体
├── Tag.php // 标签实体
├── Image.php // 图片实体
├── Video.php // 视频实体
├── Attachment.php // 附件实体
├── Lease.php // 租赁实体
├── Borrow.php // 借用实体
├── Transfer.php // 调拨实体
├── Maintenance/
│ ├── Application.php // 维护申请
│ ├── Plan.php // 维护计划
│ └── Record.php // 维护记录
├── Purchase/
│ ├── Plan.php // 采购计划
│ ├── Contract.php // 采购合同
│ └── Acceptance.php // 采购验收
├── Disposal/
│ ├── Application.php // 处置申请
│ └── Appraisal.php // 处置评估
└── Inventory/
├── Stocktake.php // 盘点
└── Count.php // 计数
仓储模式 (Repository Pattern)
src/Repository/
├── AssetRepository.php
├── CategoryRepository.php
├── OrganizationRepository.php
└── ...
4. 基础设施层 (Infrastructure Layer)
数据库配置
# config/packages/doctrine.yaml
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
server_version: '16'
orm:
auto_generate_proxy_classes: true
enable_lazy_ghost_objects: true
mappings:
App:
type: attribute
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
安全配置
# config/packages/security.yaml
security:
providers:
app_user_provider:
entity:
class: App\Entity\User
property: username
firewalls:
main:
form_login:
login_path: app_login
check_path: app_login
access_control:
- { path: ^/admin, roles: ROLE_USER }
role_hierarchy:
ROLE_SUPER_ADMIN: [ROLE_ADMIN]
ROLE_ROOT: [ROLE_SUPER_ADMIN, ROLE_ALLOWED_TO_SWITCH]
文件上传配置
# config/packages/vich_uploader.yaml
vich_uploader:
mappings:
asset_image:
uri_prefix: /images
upload_destination: '%kernel.project_dir%/public/images'
asset_video:
uri_prefix: /videos
upload_destination: '%kernel.project_dir%/public/videos'
asset_attachment:
uri_prefix: /attachments
upload_destination: '%kernel.project_dir%/public/attachments'
数据架构
1. 数据库设计
核心表结构
-- 资产表
CREATE TABLE asset (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
spec VARCHAR(255),
model VARCHAR(255),
value INTEGER,
depreciation INTEGER,
vendor VARCHAR(255),
purchased_at TIMESTAMP,
created_at TIMESTAMP NOT NULL,
status SMALLINT DEFAULT 0,
code VARCHAR(48),
coords VARCHAR(255),
address VARCHAR(255),
cert VARCHAR(255),
url VARCHAR(255),
note TEXT,
organization_id INTEGER NOT NULL,
category_id INTEGER NOT NULL,
FOREIGN KEY (organization_id) REFERENCES organization(id),
FOREIGN KEY (category_id) REFERENCES category(id)
);
-- 分类表
CREATE TABLE category (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
label VARCHAR(255) NOT NULL,
code VARCHAR(6) UNIQUE NOT NULL,
tid SMALLINT DEFAULT 1,
created_at TIMESTAMP NOT NULL
);
-- 组织表
CREATE TABLE organization (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
parent_id INTEGER,
created_at TIMESTAMP NOT NULL,
FOREIGN KEY (parent_id) REFERENCES organization(id)
);
关系映射
本图展示了核心实体之间的关系结构,以Asset为中心,连接分类、组织、多媒体文件等关键业务对象。这种设计确保了数据的完整性和查询的高效性。
erDiagram Asset ||--o{ Image : "has many" Asset ||--o{ Video : "has many" Asset ||--o{ Attachment : "has many" Asset }o--|| Category : "belongs to" Asset }o--|| Organization : "belongs to" Asset }o--o{ Tag : "has many" Asset { int id PK string name string spec string model int value int depreciation string vendor datetime purchased_at datetime created_at int status string code string coords string address string cert string url text note } Category { int id PK string name string label string code int tid datetime created_at } Organization { int id PK string name int parent_id FK datetime created_at } Image { int id PK string image string title string description int asset_id FK } Video { int id PK string video string title string description string video_format int file_size int duration int width int height int asset_id FK } Attachment { int id PK string attachment string title string description string file_type int file_size int asset_id FK } Tag { int id PK string name string label }
关系说明:
- Asset 作为核心实体,与所有业务对象建立关联
- 一对多关系:一个资产可以有多张图片、多个视频、多个附件
- 多对一关系:多个资产属于同一个分类或组织
- 多对多关系:资产和标签之间可以灵活关联
2. 状态管理
资产状态枚举
const STATUSES = [
'新增' => 0,
'闲置' => 10,
'在用' => 20,
'报废' => 30,
'维修' => 40
];
租赁状态枚举
const LEASE_STATUSES = [
'待审批' => 0,
'已批准' => 10,
'租赁中' => 20,
'已到期' => 30,
'已归还' => 40,
'已取消' => 50
];
模块架构
1. 资产管理模块
功能组件
本图展示了资产管理模块的层次结构,区分有形资产和无形资产的管理方式,通过不同的控制器和分类体系实现差异化管理。
graph TD A[Asset Management] --> B[Fixed Assets] A --> C[Intangible Assets] A --> D[Categories] B --> B1[AssetCrudController] B --> B2[Asset Entity] B --> B3[Asset Repository] C --> C1[IntangibleCrudController] C --> C2[Category tid=2] C --> C3[Specialized Fields] D --> D1[Fixed Categories tid=1] D --> D2[Intangible Categories tid=2] D --> D3[CategoryCrudController]
模块说明:
- 有形资产:通过AssetCrudController管理,支持完整的生命周期管理
- 无形资产:通过IntangibleCrudController管理,使用tid=2的分类体系
- 分类管理:统一的CategoryCrudController,通过tid字段区分资产类型
多媒体管理
本图展示了多媒体文件管理的架构设计,支持图片、视频、附件三种类型的文件管理,每种类型都有专门的处理机制和优化策略。
graph TD A[Media Management] --> B[Images] A --> C[Videos] A --> D[Attachments] B --> B1[Image Entity] B --> B2[VichUploader Integration] B --> B3[Thumbnail Generation] C --> C1[Video Entity] C --> C2[Thumbnail Service] C --> C3[Dynamic Loading] D --> D1[Attachment Entity] D --> D2[File Type Detection] D --> D3[Preview Support]
多媒体说明:
- 图片管理:支持缩略图生成、懒加载、响应式显示
- 视频管理:动态加载、缩略图服务、格式支持
- 附件管理:文件类型检测、预览支持、下载管理
2. 流程管理模块
采购流程
本图展示了资产采购的完整流程,从计划制定到合同签订再到验收确认,确保采购过程的规范性和可追溯性。
graph LR A[Purchase Plan<br/>采购计划] --> B[Purchase Contract<br/>采购合同] B --> C[Purchase Acceptance<br/>采购验收]
维护流程
本图展示了资产维护的流程管理,从维护申请到计划制定再到记录跟踪,实现维护工作的系统化管理。
graph LR A[Maintenance Application<br/>维护申请] --> B[Maintenance Plan<br/>维护计划] B --> C[Maintenance Record<br/>维护记录]
处置流程
本图展示了资产处置的流程设计,从处置申请到评估确认,确保资产处置的合规性和价值最大化。
graph LR A[Disposal Application<br/>处置申请] --> B[Disposal Appraisal<br/>处置评估]
3. 库存管理模块
盘点功能
本图展示了库存管理模块的核心功能,通过盘点和计数功能实现资产库存的精确管理,确保账实相符。
graph TD A[Inventory Management] --> B[Stocktake<br/>盘点] A --> C[Count<br/>计数] A --> D[InventoryCrudController]
库存管理说明:
- 盘点功能:定期或不定期的资产清查,确保资产状态准确
- 计数功能:实时统计资产数量,支持多维度统计
- 控制器管理:统一的CRUD操作,支持批量处理
4. 系统管理模块
权限管理
本图展示了系统管理模块的权限管理架构,通过用户、角色、权限的层次化管理,实现细粒度的访问控制。
graph TD A[System Management] --> B[User Management] A --> C[Role Management] A --> D[Permission Management] A --> E[Organization Management] A --> F[System Configuration]
权限管理说明:
- 用户管理:用户账户的创建、修改、删除和状态管理
- 角色管理:定义不同层级的角色,如管理员、操作员等
- 权限管理:细粒度的功能权限控制,确保数据安全
- 组织管理:支持多级组织架构,实现数据隔离
- 系统配置:全局系统参数的设置和管理
安全架构
1. 认证与授权
用户认证
- 表单登录: 用户名/密码认证
- 会话管理: 基于Cookie的会话
- 密码加密: 自动密码哈希
权限控制
本图展示了系统的权限层次结构,从最高权限的ROLE_ROOT到基础用户权限,通过多层次的权限控制确保系统安全。
graph TD A[ROLE_ROOT] --> B[ROLE_SUPER_ADMIN] B --> C[ROLE_ADMIN] C --> D[ROLE_USER] A --> A1[Full System Access] B --> B1[Admin Functions] C --> C1[Management Functions] D --> D1[Basic User Functions] E[Access Control] --> F[Path-based Control] E --> G[Feature-based Control] E --> H[Data-based Control]
权限层次说明:
- ROLE_ROOT:系统最高权限,拥有所有功能访问权限
- ROLE_SUPER_ADMIN:超级管理员,拥有管理功能权限
- ROLE_ADMIN:管理员,拥有管理功能权限
- ROLE_USER:普通用户,拥有基础功能权限
- 访问控制:支持基于路径、功能、数据的多维度权限控制
2. 数据安全
输入验证
本图展示了系统输入验证的安全机制,通过多层验证确保数据的安全性和完整性,防止常见的安全攻击。
graph TD A[Input Validation] --> B[Form Validation<br/>Symfony Validator] A --> C[SQL Injection Protection<br/>Doctrine ORM] A --> D[XSS Protection<br/>Twig Auto-escape] B --> B1[Field Validation] B --> B2[Custom Validators] C --> C1[Parameterized Queries] C --> C2[Query Builder] D --> D1[Automatic Escaping] D --> D2[Safe HTML Filtering]
验证机制说明:
- 表单验证:使用Symfony Validator进行字段验证和自定义验证器
- SQL注入防护:通过Doctrine ORM的参数化查询和查询构建器防止SQL注入
- XSS防护:通过Twig模板的自动转义和安全HTML过滤防止跨站脚本攻击
文件安全
本图展示了文件上传和存储的安全机制,通过上传限制、存储隔离和访问控制确保文件系统的安全性。
graph TD A[File Security] --> B[Upload Restrictions] A --> C[Storage Isolation] A --> D[Access Control] B --> B1[File Type Validation] B --> B2[File Size Limits] C --> C1[Separate Directories] C --> C2[Permission Isolation] D --> D1[Role-based Access] D --> D2[Path Validation]
文件安全说明:
- 上传限制:文件类型验证和大小限制,防止恶意文件上传
- 存储隔离:分离目录存储和权限隔离,确保文件安全
- 访问控制:基于角色的访问控制和路径验证,防止未授权访问
性能架构
1. 缓存策略
应用缓存
本图展示了系统的多层缓存策略,通过应用缓存、数据库缓存和会话缓存提升系统性能和响应速度。
graph TD A[Cache Strategy] --> B[Application Cache] A --> C[Database Cache] A --> D[Session Cache] B --> B1[doctrine.result_cache_pool] B --> B2[doctrine.system_cache_pool] B --> B3[cache.app] B --> B4[cache.system] C --> C1[Query Result Cache] C --> C2[Metadata Cache] D --> D1[User Session] D --> D2[Application State]
缓存策略说明:
- 应用缓存:Doctrine结果缓存、系统缓存、应用缓存和系统缓存池
- 数据库缓存:查询结果缓存和元数据缓存,减少数据库查询
- 会话缓存:用户会话和应用程序状态缓存,提升用户体验
数据库优化
本图展示了数据库性能优化的策略,通过查询优化、索引策略和连接池管理提升数据库性能。
graph TD A[Database Optimization] --> B[Query Optimization] A --> C[Index Strategy] A --> D[Connection Pool] B --> B1[Avoid N+1 Queries] B --> B2[Eager Loading] B --> B3[Query Caching] C --> C1[Primary Key Indexes] C --> C2[Foreign Key Indexes] C --> C3[Search Field Indexes] D --> D1[Connection Pooling] D --> D2[Connection Limits] D --> D3[Connection Timeout]
数据库优化说明:
- 查询优化:避免N+1查询、预加载、查询缓存等优化策略
- 索引策略:主键索引、外键索引、搜索字段索引的合理设计
- 连接池:连接池管理、连接限制和超时设置,确保数据库连接的高效利用
2. 前端优化
资源管理
本图展示了前端资源管理的优化策略,通过资源映射、压缩和浏览器缓存提升前端性能。
graph TD A[Resource Management] --> B[Asset Mapper] A --> C[Resource Compression] A --> D[Browser Caching] B --> B1[Modular JS Loading] B --> B2[Dynamic Imports] C --> C1[CSS Minification] C --> C2[JS Minification] C --> C3[Image Optimization] D --> D1[Cache Headers] D --> D2[ETag Support] D --> D3[Version Control]
资源管理说明:
- 资源映射:模块化JS加载和动态导入,提升加载效率
- 资源压缩:CSS、JS压缩和图片优化,减少传输大小
- 浏览器缓存:缓存头、ETag支持和版本控制,提升缓存效率
懒加载
本图展示了懒加载技术的实现策略,通过图片懒加载、视频懒加载和分页加载提升页面性能。
graph TD A[Lazy Loading] --> B[Image Lazy Loading] A --> C[Video Lazy Loading] A --> D[Pagination Loading] B --> B1[IntersectionObserver API] B --> B2[Placeholder Images] C --> C1[Dynamic Video Creation] C --> C2[Thumbnail Generation] D --> D1[Data Pagination] D --> D2[Infinite Scroll] D --> D3[Virtual Scrolling]
懒加载说明:
- 图片懒加载:使用IntersectionObserver API和占位图片,按需加载图片
- 视频懒加载:动态创建视频元素和缩略图生成,优化视频加载
- 分页加载:数据分页、无限滚动和虚拟滚动,提升大数据量处理性能
部署架构
1. 容器化部署
Docker配置
# 应用容器
FROM php:8.2-fpm
# 安装扩展和依赖
# 配置应用环境
服务编排
本图展示了Docker容器化部署的服务架构,通过多个容器服务实现应用的高可用和可扩展性。
graph TB subgraph "Docker Services" A[App Container<br/>PHP 8.2-FPM] B[Nginx Container<br/>Reverse Proxy] C[PostgreSQL Container<br/>Database] D[Redis Container<br/>Cache & Session] end A --> B A --> C A --> D B --> A E[External Access] --> B B --> F[Load Balancer] F --> G[Multiple App Instances]
服务编排说明:
- 应用容器:PHP 8.2-FPM应用容器,处理业务逻辑
- 反向代理:Nginx容器作为反向代理,处理HTTP请求
- 数据库容器:PostgreSQL数据库容器,存储业务数据
- 缓存容器:Redis容器,提供缓存和会话存储
- 负载均衡:支持多应用实例的负载均衡,提升系统可用性
2. 生产环境
负载均衡
本图展示了生产环境的负载均衡架构,通过Nginx负载均衡器分发请求到多个应用实例,确保系统的高可用性。
graph TB A[External Users] --> B[Nginx Load Balancer] B --> C[App Instance 1] B --> D[App Instance 2] B --> E[App Instance N] C --> F[PostgreSQL Master] D --> F E --> F C --> G[Redis Cluster] D --> G E --> G H[Session Storage] --> G I[Cache Storage] --> G
负载均衡说明:
- 负载均衡器:Nginx作为负载均衡器,分发用户请求到多个应用实例
- 应用实例:多个应用实例并行处理请求,提升系统处理能力
- 数据库集群:PostgreSQL主库和Redis集群,提供数据存储和缓存服务
- 会话存储:通过Redis集群实现会话共享,支持多实例部署
监控告警
本图展示了系统的监控告警架构,通过应用监控、日志管理和告警系统确保系统的稳定运行。
graph TD A[Monitoring System] --> B[Application Monitoring] A --> C[Log Management] A --> D[Alert System] B --> B1[Performance Metrics] B --> B2[Response Times] B --> B3[Error Rates] C --> C1[Centralized Logging] C --> C2[Log Aggregation] C --> C3[Log Analysis] D --> D1[Threshold Alerts] D --> D2[Anomaly Detection] D --> D3[Notification Channels]
监控告警说明:
- 应用监控:性能指标、响应时间、错误率等关键指标的实时监控
- 日志管理:集中化日志、日志聚合和日志分析,便于问题排查
- 告警系统:阈值告警、异常检测和通知渠道,及时发现问题并通知相关人员
扩展性设计
1. 模块化架构
插件系统
本图展示了系统的插件化架构设计,通过事件驱动、服务扩展和配置管理实现系统的模块化扩展。
graph TD A[Plugin System] --> B[Event-driven Architecture] A --> C[Service Extension] A --> D[Configuration Management] B --> B1[Symfony Event System] B --> B2[Custom Event Listeners] B --> B3[Event Subscribers] C --> C1[Dependency Injection] C --> C2[Service Container] C --> C3[Service Tags] D --> D1[YAML Configuration] D --> D2[Environment Variables] D --> D3[Runtime Configuration]
插件系统说明:
- 事件驱动架构:基于Symfony事件系统,支持自定义事件监听器和订阅者
- 服务扩展:通过依赖注入、服务容器和服务标签实现功能扩展
- 配置管理:YAML配置、环境变量和运行时配置,支持灵活的配置管理
API接口
本图展示了系统的API接口设计,通过RESTful API、版本控制和文档管理实现系统的开放性和可集成性。
graph TD A[API System] --> B[RESTful API] A --> C[Version Control] A --> D[Documentation] B --> B1[HTTP Methods] B --> B2[Resource Endpoints] B --> B3[Status Codes] C --> C1[API Versioning] C --> C2[Backward Compatibility] C --> C3[Migration Strategy] D --> D1[OpenAPI Specification] D --> D2[Auto-generated Docs] D --> D3[Interactive Testing]
API接口说明:
- RESTful API:标准HTTP方法、资源端点和状态码,提供统一的API接口
- 版本控制:API版本管理、向后兼容和迁移策略,确保API的稳定性
- 文档管理:OpenAPI规范、自动生成文档和交互式测试,提升API的可用性
2. 集成能力
第三方集成
本图展示了系统的第三方集成能力,通过地图服务、文件存储和通知服务实现系统的功能扩展。
graph TD A[Third-party Integration] --> B[Map Services] A --> C[File Storage] A --> D[Notification Services] B --> B1[Tencent Maps API] B --> B2[Geocoding Service] B --> B3[Reverse Geocoding] C --> C1[Cloud Storage] C --> C2[CDN Integration] C --> C3[File Processing] D --> D1[Email Service] D --> D2[SMS Service] D --> D3[Push Notifications]
第三方集成说明:
- 地图服务:腾讯地图API、地理编码和反向地理编码,提供地理位置服务
- 文件存储:云存储、CDN集成和文件处理,提供高效的文件管理
- 通知服务:邮件服务、短信服务和推送通知,提供多渠道通知能力
数据同步
本图展示了系统的数据同步架构,通过财务系统、HR系统和外部系统的数据同步实现系统间的数据一致性。
graph TD A[Data Synchronization] --> B[Financial System] A --> C[HR System] A --> D[External Systems] B --> B1[Asset Value Sync] B --> B2[Depreciation Data] B --> B3[Cost Center Mapping] C --> C1[Employee Data] C --> C2[Organization Structure] C --> C3[Role Mapping] D --> D1[Standard APIs] D --> D2[Data Transformation] D --> D3[Error Handling]
数据同步说明:
- 财务系统:资产价值同步、折旧数据和成本中心映射,确保财务数据一致性
- HR系统:员工数据、组织结构和角色映射,实现人员信息同步
- 外部系统:标准API、数据转换和错误处理,支持与各种外部系统的集成
运维架构
1. 日志管理
日志配置
# config/packages/monolog.yaml
monolog:
handlers:
main:
type: stream
path: '%kernel.logs_dir%/%kernel.environment%.log'
level: debug
审计日志
本图展示了系统的审计日志架构,通过操作记录、数据变更和安全事件的日志管理实现系统的可追溯性。
graph TD A[Audit Logging] --> B[Operation Records] A --> C[Data Changes] A --> D[Security Events] B --> B1[User Actions] B --> B2[System Events] B --> B3[API Calls] C --> C1[Entity Changes] C --> C2[Field Updates] C --> C3[Bulk Operations] D --> D1[Login Attempts] D --> D2[Permission Denials] D --> D3[Security Violations]
审计日志说明:
- 操作记录:用户操作、系统事件和API调用,记录所有业务操作
- 数据变更:实体变更、字段更新和批量操作,跟踪数据变化历史
- 安全事件:登录尝试、权限拒绝和安全违规,监控系统安全状态
2. 备份恢复
数据备份
本图展示了系统的数据备份策略,通过数据库备份、文件备份和配置备份确保数据的安全性和可恢复性。
graph TD A[Data Backup] --> B[Database Backup] A --> C[File Backup] A --> D[Configuration Backup] B --> B1[Full Backup] B --> B2[Incremental Backup] B --> B3[Point-in-time Recovery] C --> C1[Upload Files] C --> C2[Generated Files] C --> C3[Log Files] D --> D1[System Config] D --> D2[Application Config] D --> D3[Environment Variables]
数据备份说明:
- 数据库备份:全量备份、增量备份和时点恢复,确保数据完整性
- 文件备份:上传文件、生成文件和日志文件,保护所有文件资源
- 配置备份:系统配置、应用配置和环境变量,确保系统配置的可恢复性
灾难恢复
本图展示了系统的灾难恢复架构,通过备份策略、恢复流程和测试验证确保系统在灾难情况下的快速恢复能力。
graph TD A[Disaster Recovery] --> B[Backup Strategy] A --> C[Recovery Process] A --> D[Testing & Validation] B --> B1[Multi-level Backups] B --> B2[Geographic Distribution] B --> B3[Retention Policies] C --> C1[Standardized Procedures] C --> C2[Recovery Time Objectives] C --> C3[Recovery Point Objectives] D --> D1[Regular Testing] D --> D2[Recovery Drills] D --> D3[Performance Validation]
灾难恢复说明:
- 备份策略:多级备份、地理分布和保留策略,确保备份的可靠性
- 恢复流程:标准化程序、恢复时间目标和恢复点目标,确保快速恢复
- 测试验证:定期测试、恢复演练和性能验证,确保恢复流程的有效性
总结
本资产管理系统采用基于Symfony 7.x的现代化分层架构,通过EasyAdminBundle、Doctrine ORM、Redis缓存等技术栈构建了完整的企业级资产管理平台。
核心特点:系统支持有形资产和无形资产的双重管理,具备多媒体档案管理、动态加载、懒加载等性能优化能力。采用模块化设计,包含资产管理、流程管理、库存管理、系统管理等核心模块。
安全与性能:构建了多层次安全架构,基于RBAC的权限控制,通过缓存机制、数据库优化、前端资源优化确保高并发场景下的稳定运行。
部署运维:采用Docker容器化部署,支持负载均衡和水平扩展,具备完善的监控告警、日志管理、备份恢复机制。
扩展能力:基于事件系统的插件化架构,支持功能模块动态扩展,提供RESTful API接口,支持与财务系统、HR系统等外部系统集成。
该架构为开发、运维、业务团队提供了清晰的技术指导,为企业资产管理数字化转型提供强有力的技术支撑。