Skip to content

Commit 8acd775

Browse files
committed
Move architecture information to ARCHITECTURE.md
1 parent 013b343 commit 8acd775

3 files changed

Lines changed: 64 additions & 57 deletions

File tree

AGENTS.md

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,9 @@
22

33
Dirigent is a free and open package registry for Composer, the PHP package manager. It allows users to publish private packages and mirror packages from external registries like Packagist.
44

5-
### Project structure
5+
## Architecture
66

7-
```
8-
assets/ # Frontend assets
9-
config/ # Symfony configuration
10-
migrations/ # Doctrine migrations (PostgreSQL)
11-
src/
12-
├── Attribute/ # PHP attributes
13-
├── Command/ # Symfony console commands
14-
├── Composer/ # Composer integration logic
15-
├── Controller/ # HTTP controllers
16-
│ └── Dashboard/ # EasyAdmin dashboard controllers
17-
├── Doctrine/
18-
│ ├── Entity/ # Doctrine ORM entities
19-
│ ├── Repository/ # Doctrine repositories
20-
│ ├── Type/ # Custom Doctrine types
21-
│ └── DataFixtures/ # Database fixtures
22-
├── Encryption/ # Encryption utilities
23-
├── Entity/ # Enums (UserRole, PackageUpdateSource)
24-
├── EventListener/ # Symfony event listeners
25-
├── Form/ # Symfony form types
26-
├── Message/ # Symfony messenger messages and handlers (async jobs)
27-
├── Package/ # Package management services
28-
├── Routing/ # Symfony routing logic
29-
├── Twig/ # Twig extensions
30-
└── Validator/ # Symfony validators
31-
templates/ # Twig templates
32-
tests/
33-
├── UnitTests/ # Unit tests
34-
├── FunctionalTests/ # Functional/Integration tests
35-
└── Docker/ # Docker image tests
36-
```
7+
@ARCHITECTURE.md
378

389
## Coding style
3910

ARCHITECTURE.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Dirigent architecture
2+
3+
## Technology stack
4+
5+
- **Languages & frameworks**:
6+
- PHP 8.3+
7+
- Symfony 7.3
8+
- PostgreSQL 16.x (via Doctrine ORM 3.x)
9+
- TypeScript
10+
- **Development requirements**:
11+
- Docker
12+
- Symfony CLI
13+
- **Package managers**:
14+
- **PHP**: Composer
15+
- **TypeScript**: NPM
16+
- **Frontend**: Twig, EasyAdmin 4.x
17+
- **Frontend (JavaScript)**: Webpack Encore, Stimulus
18+
- **Linting**: Rector, PHP-CS-Fixer, PHPStan
19+
- **Testing**: PHPUnit 12.x, Testcontainers
20+
21+
## Directory structure
22+
23+
```
24+
assets/ # Frontend assets
25+
config/ # Symfony configuration
26+
migrations/ # Doctrine migrations (PostgreSQL)
27+
src/
28+
├── Attribute/ # PHP attributes
29+
├── Command/ # Symfony console commands
30+
├── Composer/ # Composer integration logic
31+
├── Controller/ # HTTP controllers
32+
│ └── Dashboard/ # EasyAdmin dashboard controllers
33+
├── Doctrine/
34+
│ ├── Entity/ # Doctrine ORM entities
35+
│ ├── Repository/ # Doctrine repositories
36+
│ ├── Type/ # Custom Doctrine types
37+
│ └── DataFixtures/ # Database fixtures
38+
├── Encryption/ # Encryption utilities
39+
├── Entity/ # Enums (UserRole, PackageUpdateSource)
40+
├── EventListener/ # Symfony event listeners
41+
├── Form/ # Symfony form types
42+
├── Message/ # Symfony messenger messages and handlers (async jobs)
43+
├── Package/ # Package management services
44+
├── Routing/ # Symfony routing logic
45+
├── Twig/ # Twig extensions
46+
└── Validator/ # Symfony validators
47+
templates/ # Twig templates
48+
tests/
49+
├── UnitTests/ # Unit tests
50+
├── FunctionalTests/ # Functional/Integration tests
51+
└── Docker/ # Docker image tests
52+
```
53+
54+
## Coding style
55+
56+
### PHP
57+
58+
Dirigent follows the [PER coding style][per-coding-style] and the [Symfony coding standards][symfony-coding-standards].

CONTRIBUTING.md

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,14 @@
11
# Contributing to Dirigent
22

3-
Dirigent is an open-source project, contributions of all kind are welcome, including
3+
Dirigent is an open-source project, contributions of all kinds are welcome, including
44
[financial contributions][codedmonkey-sponsor].
55

6-
This guide contains technical information and instructions about the development process of the project that you should
6+
This guide contains instructions about the development process of the project that you should
77
follow when contributing code.
88

9-
## Project information
9+
## Architecture
1010

11-
### Technology stack
12-
13-
- **Languages & frameworks**:
14-
- PHP 8.3+
15-
- Symfony 7.3
16-
- PostgreSQL 16.x (via Doctrine ORM 3.x)
17-
- TypeScript
18-
- **Development requirements**:
19-
- Docker
20-
- Symfony CLI
21-
- **Package managers**:
22-
- **PHP**: Composer
23-
- **TypeScript**: NPM
24-
- **Frontend**: Twig, EasyAdmin 4.x
25-
- **Frontend (JavaScript)**: Webpack Encore, Stimulus
26-
- **Linting**: Rector, PHP-CS-Fixer, PHPStan
27-
- **Testing**: PHPUnit 12.x, Testcontainers
28-
29-
### Coding style
30-
31-
#### PHP
32-
33-
Dirigent follows the [PER coding style][per-coding-style] and the [Symfony coding standards][symfony-coding-standards].
11+
For an overview of the architecture of this project, see [ARCHITECTURE.md](./ARCHITECTURE.md).
3412

3513
## Running Dirigent locally
3614

0 commit comments

Comments
 (0)