Comment initialiser une application
Prérequis
Afin de pouvoir suivre ce guide, il faut préalablement avoir préparé l’environnement de développement.
Installer les modules Anakeen Platform
Après avoir initialisé notre fichier package.json
, nous allons ajouter le module @anakeen/anakeen-platform
à notre
projet grâce à la commande :
npm add @anakeen/anakeen-platform
Le module @anakeen/anakeen-platform
permet d’installer et de mettre à jour les modules Anakeen Platform de notre
projet en ligne de commande.
Pour installer des modules Anakeen Platform, lancez la commande :
npx @anakeen/anakeen-platform install --flavour default --cwd .
La commande permet de choisir une configuration d’installation parmi default
, minimum
, full
et custom
grâce à
l’option --flavour
. Ces configurations détermineront les modules qui seront ajoutés dans le fichier package.json
.
Pour plus de détails sur les modules correspondants à chaque configuration, vous pouvez consulter la
documentation de la commande install
.
Pour notre projet, nous choisissons la configuration default
.
Une fois l’opération terminée le message suivant s’affiche :
✔ success install done
● note run 'npm i' in the working directory
Les modules correspondants ont été ajoutés au fichier package.json
, on lance donc la commande d’installation npm :
npm install
Les modules Anakeen Platform sont alors téléchargés et installés.
Remarque
Si vous souhaitez installer le centre de développement, veuillez vous référer à la documentation décrit dans ce How-To.
Créer un module
Afin de créer le module correspondant à notre Restaurant, nous utiliserons ici la commande create
. Cette dernière
accepte plusieurs arguments
comme indiqués sur la documentation
ou en exécutant la commande npx @anakeen/anakeen-cli create --help
.
Il existe deux modes d’utilisation de cette commande :
La première consiste à entrer la commande suivie des arguments possibles/voulus :
npx @anakeen/anakeen-cli create --sourcePath . --vendorName Cogip --moduleName Restauratec
Nous avons ici créé un module à la racine de notre projet, en donnant
Cogip
comme nom de client et de namespace etRestauratec
en tant que nom de module.La seconde, dite interactive, est guidée et s’utilise en entrant uniquement la commande sans lui passer d’arguments :
npx @anakeen/anakeen-cli create
La console nous posera alors différentes questions. Certaines avec des valeurs par défaut que l’on peut laisser ou modifier. D’autres sans valeurs par défaut auxquelles il faudra obligatoirement répondre.
Nous avons ici créé exactement le même module qu’avec la première méthode, mais en ayant des choix explicitement proposés.
La finalité de l’une ou l’autre des méthodes précédentes est identique, créer notre module Restauratec
initialisé avec
tous ses fichiers sources :
Information
Les fichiers générés ont pour but de structurer la configuration des différentes fonctionnalités à mettre en place :
- Account : Configuration des comptes (Smart Elements de type : Rôle / Groupe / Utilisateur)
- Autocompletion : Configuration d’aide à la saisie globale et non propre à une Smart Structure spécifique
- Config : Configuration des paramètres globaux, configuration des routes
- Enumerates : Configuration des énumérés globaux
- Routes : Définition du comportement des routes référencées dans le fichier de configuration présent dans le
dossier
Config
- Settings : Configuration des paramètres globaux
- SmartStructures : Dossier contenant les fichiers de configuration des Smart Structures
Les préfixes numérotés permettent d’ordonnancer l’import des divers fichiers de configuration. Prenons pour exemple les
fichiers présents dans le dossier src/vendor/Cogip/Restauratec/Accounts
:
100-RestauratecRoles.xml
110-RestauratecGroups.xml
120-RestauratecUsers.xml
Les rôles
peuvent être associés à des groupes ainsi qu’à des utilisateurs.
Si l’un de ces deux derniers est
importé avant les rôles, l’import produira en erreur, car le rôle référencé n’existera pas encore.
L’import des fichiers est effectué par ordre croissant et indépendamment des répertoires.
La prochaine étape consiste à initialiser et lancer l’environnement Docker dans lequel l’application sera déployée.
make env-start
Informations
Cette commande démarre un conteneur docker avec :
- Le serveur Apache
- La base de données
Astuce
Il existe la possibilité de créer à la racine du projet, un fichier nommé Makefile.local.mk
. Ce dernier permet de
redéfinir les variables utilisées dans le Makefile, notamment les ports à utiliser par défaut lors de l’initialisation
du projet. Cela peut s’avérer utile si d’autres programmes ou projets utilisent les ports définis par défaut.
Par défaut (Makefile.mk) :
[...] PROJECT_PSQL_PORT = 54320 # Postgres PROJECT_HTTP_PORT = 8080 # PHP PROJECT_MAIL_PORT = 8081 # Mail [...]
Makefile.local.mk
[...] PROJECT_PSQL_PORT = 54420 # Postgres PROJECT_HTTP_PORT = 8888 # PHP PROJECT_MAIL_PORT = 8889 # Mail [...]
Astuce
Le Makefile défini des addons qui permettent de mettre en place des bouchons pour les mails ou un service xdebug.
Pour les mettre en place, consultez le fichier README.md
de votre projet.
Une fois l’initialisation du contexte d’Anakeen Platform effectuée, un rappel des ports qui sont exposés sont affichés
en console. Pour le moment, seul le port exposé de la partie php nous intéresse (Par défaut: 8080
).
La liste des ports peut être affichée à tout moment grâce à la commande make env-list-ports
La dernière étape est d’initialiser le contexte de l’application :
make context-install
Il vous faut maintenant initialiser un compte avec les droits de connexion à l'administration :
make docker-prompt-control
./ank.php --script=createUserWithAdminRight --loginUser=superuser --firstName=Super --lastName=User --password=anakeen --email=superuser@test.com
La commande permet d’installer tous les modules de votre projet.
La plateforme est bien initialisée et est dorénavant accessible à l’adresse suivante :
localhost:8080
Résultat
Une fois sur la page de login, vous pouvez vous connecter avec les informations suivante : superuser/anakeen
Une fois connecté, vous pouvez vous promouvoir super administrateur à l'aide du bouton en haut à droite de l'écran.
L'admin vous demande alors de confirmer votre mot de passe et transforme votre session en session superutilisateur
(master default
).
Une fois connecté, vous avez accès à deux interfaces utilisateurs fournies avec Anakeen Platform 4 :
- Le centre d’administration (Admin Center)
- Le centre de développement (Development Center)
Mise à jours
Dorénavant, dès lors qu’une modification est effectuée sur un fichier, il faut penser à mettre à jour le contexte de l’application :
npx @anakeen/anakeen-cli deploy -c http://localhost:8080/control -s . -u admin -p anakeen --reinstall
La commande déploie les modifications locales sur le serveur.
Pour un usage en développement, vous pouvez également utiliser la commande make deploy