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, minimal, 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 et Restauratec 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.

InteractiveCreateCommand

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 :

CreateCommandResult

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

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 : admin/anakeen

Page de connexion

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)

Page connecté

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

Et ensuite ?

Comment créer un compte