Documentation technique

Cette page décrit les différents concepts techniques utilisés dans le projet.

[ Retour au sommmaire ]


LIENS UTILES


Schéma de la base de données (v2.0.0)

BDD_IRAP.png


Gestion des mails de management

  • L'envoi de mail est réalisé grace à une adresse qu'il faut créer pour labinvent. Le protocole d'envoi est à définir dans app.php selon le serveur choisi. Lors de l'envoi d'un mail il faut utiliser le transport 'dev' en local.
  • L'application étant paramétré pour utiliser gmail, il est préférable de le garder et de créer une adresse gmail.
    Puis il faut activer l'option "utiliser des applications moins sécurisé" à l'adresse suivante : https://www.google.com/settings/security/lesssecureapps
    Enfin il faut remplir le champ "username" avec l'adresse créer et le champ "password" avec son mot de passe associé (voir exemple gmail plus bas).
  • Pour changer de mail et de transport, il faut aller dans la section Email/Transport de app.php, et adapter le bloc suivant sous le 'default' (exemple avec 'gmail')
'EmailTransport' => [
...
            'dev' => [
                    'className' => 'Smtp',
                    'host' => 'ssl://smtp.gmail.com',
                    'port' => 465,
                    'username' => 'xxxxxxxxxxxxxxxxxxxxx',
                    'password' => 'xxxxxxxxxxxxxxxxxxxxx',
                    'context' => [
                            'ssl' => [
                                    'verify_peer' => false,
                                    'verify_peer_name' => false,
                                    'allow_self_signed' => true
                            ]
                    ]
            ],
],

Tests (Mise en place et éxécution)

Génération automatique des tests (avec bake)

  • CakePHP permet aussi de gérer les tests facilement et de générer leurs squelettes avec la commande "bake".
    --> Pour commencer il faut récupérer phpunit (https://phpunit.de/), si la version de PHP est inférieur à 5.6, il faut télécharger le phpunit.phar compatible avec PHP, sinon il faut prendre la derniere version (compatible avec PHP7 également).
    --> Il faut configurer une base de donnée pour les tests dans "app.php"
    Commande génération test (se placer à la racine du projet ./labinvent) : 
    
    bin/cake bake test "type_src" "nom_table" 
    
    "type_src" correspond à Controller, Table, Entity, Form, Helper, Fixture...
    

Ajout manuel d'un test

Exécution des tests

Couverture de tests

Voici ce qui est testé actuellement:

bla bla bla...


LDAP

  • Pour le développement, j'utilise openLDAP pour avoir un LDAP et y connecter Labinvent2, pour gérer openLDAP, j'utilise l'outil de configuration phpLDAPadmin.
    --> J'utilise une VM oû les outils d'openLDAP sont déja installés et configurés.
    --> Il suffit de récupérer la machine virtuelle prête à l'emploi, et de lui attribuer manuellement une adresse IP libre (en général x.x.x.253/254) et son masque
    --> Aller sur une autre machine (physique ou virtuelle), et taper l'adresse ip défini précédement dans un navigateur
    --> Vous accéderez à une page de gestion (phpLdapAdmin)
    --> ATTENTION -> Votre PC doit être branché en filaire pour que la machine virtuelle soit accessible

https://www.turnkeylinux.org/openldap

Autres remarques

  • Mode debug personnalisé :

Faire $this->myDebug($var) dans un controlleur pour afficher le contenu de la variable si mode debug personnalisé actif, à condition que le mode debug soit activé.

Voir : http://book.cakephp.org/3.0/fr/development/testing.html

  • Pour charger une librairie (ex : phpqrcode, ...)

Voir : http://book.cakephp.org/3.0/fr/core-libraries/app.html#charger-les-fichiers-de-vendor

  • Pour créer les fichiers pdf d'entrée et de sortie, on utilise fpdf 1.8.1, on pourrait utiliser le plugin développé pour CakePHP3.

Voir : https://github.com/FriendsOfCake/CakePdf

  • Pour le JavaScript, le JS Helper a été retiré

Voir : http://book.cakephp.org/3.0/fr/appendices/3-0-migration-guide.html#jshelper

  • Pour installer un composant avec le composer :
    A la racine : 
    ./composer.phar require --dev phpunit/phpunit
    
  • Pour supprimer un composant avec le composer :
    A la racine :
     ./composer.phar remove phpunit/phpunit
    

BDD_IRAP.png (171 KB) Alexandre Cases, 06/30/2016 03:41 pm