Ajouter un nouveau module

De SOS Paris
Aller à : navigation, rechercher

La procédure d'installation est généralement indiquée dans le README de chaque module, cet article reprend les grandes étapes qu'il faudra adapter en fonction du module à intégrer.

Installation

L'installation consiste à récupérer les fichiers pour les placer dans l'arborescence du portail.

Clone GitHub

Le plus simple est de cloner le module à partir de Github, pour cela il faut disposer d'un client GIT.

Aller dans le répertoire source de Arii:

cd arii/Symfony/src/Arii

Cloner le module

git clone http://github.com/AriiPortal/moduleBundle

avec module remplacé par le module à cloner (JID, JOC, MFT, etc...) Par exemple : JIDBundle

Composer

Lorsque un module nécessite un package PHP particulier, la solution la plus sûre est l'utilisation de composer qui permet d'ajouter les packages en respectant les dépendances.

On édite le fichier composer.json à la racine de Symfony2 pour y ajouter les packages dans les versions désirées:

    "require": {
        "php": ">=5.3.9",
        "symfony/symfony": "2.8.*",
        "doctrine/orm": "~2.2,>=2.2.3,<2.5",
        "doctrine/doctrine-bundle": "~1.4",
        "symfony/assetic-bundle": "~2.3",
        "symfony/swiftmailer-bundle": "~2.3",
        "symfony/monolog-bundle": "~2.4",
        "sensio/distribution-bundle": "~4.0",
        "sensio/framework-extra-bundle": "~3.0,>=3.0.2",
        "incenteev/composer-parameter-handler": "~2.0",
        "friendsofsymfony/user-bundle": "~2.0@dev",
        
        "doctrine/dbal": "^2.5",
       
        "mtdowling/cron-expression" : "^1.1",
        "mikehaertl/phpwkhtmltopdf" : "^2.1.1"        
    },

puis on lance la commande composer

php composer.phar update

Copie de fichiers

L'intérêt d'utiliser git et composer est de pouvoir faire des mises à jour par git pull et/ou en relançant la commande composer.

Si on n'a pas la possibilité d'installer le client git, il reste toujours la méthode de décompression de l'archive dans le répertoire.

Configuration

Les étapes précédentes ont permis d'ajouter des fichiers dans le répertoire, la configuration va activer le module dans le portail.

Kernel et routage

Editer le fichier arii/app/AppKernel.php

       $bundles = array(
           new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
           new Symfony\Bundle\SecurityBundle\SecurityBundle(),
           new Symfony\Bundle\TwigBundle\TwigBundle(),
           new Symfony\Bundle\MonologBundle\MonologBundle(),
           new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),

...

           new Arii\moduleBundle\AriimoduleBundle(),
       );

Le routage permet de créer les liens entre url et fonctions php:

Editer le fichier app/config/routing.yml

# ========================================
# Mon nouveau module
# ----------------------------------------
arii_module:
    resource: "@AriiModuleBundle/Resources/config/routing.yml"
    prefix:   /ModuleBundle/{_locale}
    requirements:
        _locale: en|fr|es|de|cn|ar|ru|jp

Mise à jour de la BD

Le module peut utiliser de nouvelles tables dans la base de données

Pour identifier les nouveaux changements:

php app/console doctrine:schema:update --dump-sql

Pour forcer la mise à jour:

php app/console doctrine:schema:update --force

Administration

Si le module nécessite de nouveaux paramètres de configuration, il est possible que ces paramètres soient dans le fichier app/config/parameters.yml:

arii_core:
    modules: 'Run(ROLE_USER),Hub(ROLE_USER),ATS(ROLE_USER),I5(ROLE_USER),JID(ROLE_USER),DS(ROLE_USER),JOC(ROLE_USER),MFT(ROLE_USER),GVZ(ROLE_USER),Report(ROLE_USER),Time(ROLE_USER),Gallery(ROLE_USER),JOE(ROLE_USER),Mig(ROLE_USER),Blockly(ROLE_USER),Admin(ROLE_USER),Config(ROLE_USER)'
    java: C:/xampp56/jre1.8.0_91
    perl: perl
    graphviz_dot: C:\Program Files (x86)\Graphviz2.38\bin\dot.exe

Cette méthode a tendance à être abandonnée au profit de l'utilisation du module d'Administration.