README.md 3.83 KB
Newer Older
Bertrand Gauthier's avatar
Bertrand Gauthier committed
1
2
# Squelette d'application Unicaen

Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
3
4
Ce squelette d'application constitue un socle minimal pour entamer rapidement le développement d'une nouvelle 
application à la mode "Unicaen".
5
6


Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
7
## Création d'une nouvelle appli à partir du squelette
8

Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Ce qui suit est un exemple pour une nouvelle appli PHP 7.3 dans le répertoire `./newapp`.

### Création des sources de l'application

```bash
APP_DIR=newapp
PHP_VERSION=7.3
docker run \
--rm \
-v $PWD:/app \
-w /app unicaen-dev-php${PHP_VERSION}-apache \
composer create-project --repository https://gest.unicaen.fr/packagist unicaen/skeleton-application ${APP_DIR}
```

*NB : l'image Docker `unicaen-dev-php${PHP_VERSION}-apache` est utilisée ici pour lancer `composer` dans
un environnement PHP dont on maîtrise la version. Le nécessaire pour obtenir et construire cette image se trouve 
[ici](https://git.unicaen.fr/open-source/docker/unicaen-image).*

### Mise à jour des bibliothèques PHP

```bash
cd ${APP_DIR}
docker run --rm -v $PWD:/app -w /app unicaen-dev-php${PHP_VERSION}-apache composer update
```

### Création du dépôt git

```bash
cd ${APP_DIR}
git init
git add .
git commit -m "Squelette de l'application"
git push --set-upstream git@git.unicaen.fr:dsi/${APP_DIR}.git master
```

*NB : la création du dépôt git de cette façon n'est possible que si vous disposez des droits suffisants dans le 
namespace gitlab spécifié.*


## Construction et lancement du container Docker

```bash
docker-compose up --build
```
53
54


Bertrand Gauthier's avatar
Bertrand Gauthier committed
55
## Module Demo
56

57
58
Le squelette d'application possède un module "démo" qui utilise une base de données PostgreSQL de démonstration 
permettant d'avoir une authentification locale qui fonctionne. 
Bertrand Gauthier's avatar
Bertrand Gauthier committed
59

60
61
Cette base de données est fournie par le service `db` (fichier de config `docker-compose.yml`).
Il y a également un service `adminer` fournissant de quoi explorer la base de données avec l'outil 
Bertrand Gauthier's avatar
Bertrand Gauthier committed
62
["Adminer"](https://www.adminer.org) en vous rendant à l'adresse `http://localhost:9080` et en utilisant les informations
63
 de connexion à la bdd présentes dans le `docker-compose.yml`.
Bertrand Gauthier's avatar
Bertrand Gauthier committed
64
65
66
67
68
69
70
71
72
Pour explorer/administrer la base de données de l'extérieur du container (avec PHPStorm par exemple), 
l'adresse de la base est cette fois `localhost:8432`.

NB :
- Grâce au montage `./data/db:/var/lib/postgresql/data` spécifié dans `docker-compose.yml`, la base de données est 
  persistée dans le répertoire `data/db` de l'appli.
- Les scripts de création de la base de données exécutés au lancement du container (si la base n'existe pas déjà)
  se trouvent dans le répertoire `./docker/db` de l'appli et sont fournis au container grâce au montage 
  `./docker/db/:/docker-entrypoint-initdb.d/`. 
73

Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
74

Bertrand Gauthier's avatar
Bertrand Gauthier committed
75
76
## Configuration du projet

77
78
79
80
- Renommez `config/autoload/local.php.dist` en `local.php` :
```bash
mv config/autoload/local.php.dist config/autoload/local.php
```
81
82
83

- Copiez dans votre dossier `config/autoload` les fichiers de configuration locaux et globaux `.dist`
  des bibliothèques utilisées sans leur extension `.dist` :
Bertrand Gauthier's avatar
Bertrand Gauthier committed
84
```bash
85
86
87
88
cp vendor/unicaen/app/config/unicaen-app.global.php.dist   config/autoload/unicaen-app.global.php
cp vendor/unicaen/app/config/unicaen-app.local.php.dist    config/autoload/unicaen-app.local.php
cp vendor/unicaen/auth/config/unicaen-auth.global.php.dist config/autoload/unicaen-auth.global.php
cp vendor/unicaen/auth/config/unicaen-auth.local.php.dist  config/autoload/unicaen-auth.local.php
Bertrand Gauthier's avatar
Bertrand Gauthier committed
89
90
```

91
92
- Le cas échéant, reportez-vous aux docs des modules concernés pour adapter ces fichiers de configuration 
à vos besoins :
93
94
95
  - [unicaen/app](https://git.unicaen.fr/lib/unicaen/app)
  - [unicaen/auth](https://git.unicaen.fr/lib/unicaen/auth)

Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
96

97
98
## Test de l'application 

Bertrand Gauthier's avatar
Bertrand Gauthier committed
99
Théoriquement, l'application devrait être accessible à l'adresse [https://localhost:8443](https://localhost:8443).
100
Le port utilisé dépend des redirections configurées dans le fichier [docker-compose.yml](docker-compose.yml).