README.md 4.01 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
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

Bertrand Gauthier's avatar
Bertrand Gauthier committed
13
14
15
16
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).

Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
```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}
```

### Mise à jour des bibliothèques PHP

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

Bertrand Gauthier's avatar
Bertrand Gauthier committed
33
34
35
36
### Droits d'écriture

Comme les commandes lancées via Docker (comme ici, `composer`) sont exécutées en `root`, il faut reprendre la main 
sur les fichiers créés.
Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
37
38
39

```bash
cd ${APP_DIR}
Bertrand Gauthier's avatar
Bertrand Gauthier committed
40
41
42
43
44
45
sudo chown -R ${USER} .
```

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

```bash
Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
```
61
62


Bertrand Gauthier's avatar
Bertrand Gauthier committed
63
## Module Demo
64

65
66
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
67

68
69
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
70
["Adminer"](https://www.adminer.org) en vous rendant à l'adresse `http://localhost:9080` et en utilisant les informations
71
 de connexion à la bdd présentes dans le `docker-compose.yml`.
Bertrand Gauthier's avatar
Bertrand Gauthier committed
72
73
74
75
76
77
78
79
80
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/`. 
81

Bertrand Gauthier's avatar
Doc    
Bertrand Gauthier committed
82

Bertrand Gauthier's avatar
Bertrand Gauthier committed
83
84
## Configuration du projet

85
86
87
88
- Renommez `config/autoload/local.php.dist` en `local.php` :
```bash
mv config/autoload/local.php.dist config/autoload/local.php
```
89
90
91

- 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
92
```bash
93
94
95
96
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
97
98
```

99
100
- Le cas échéant, reportez-vous aux docs des modules concernés pour adapter ces fichiers de configuration 
à vos besoins :
101
102
103
  - [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
104

105
106
## Test de l'application 

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