==== Tips ====
===débug===
* le débuggeur du navigateur (raccourci F12) permet une exécution pas à pas du javascript : pour cela mettez des points d'arrêt, une fois le code arrêté le pas à pas se fait avec F10 (F8 pour sauter au prochain point d'arrêt)
* utiliser l'inspecteur d'éléments du navigateur pour identifier la balise correspondant à un élément
* consulter les logs de votre conteneur docker (celle de la base de donnée par exemple) avec docker logs
* faire des var_dump(*$nom de la variable*)
pour mieux analyser où se situe les problèmes .
===Base de donnée ===
Il peut être intéressant de voir la structure de la base donnée de framadate
~$ docker exec -it framadate-db bash
Se connecter à la base de données avec les identifiants définis dans le docker-compose.yml
mysql -u framadate framadate -p
Vous êtes maintenant dans un shell à l'intérieur de votre base de donnée, vous pouvez donc librement lancer des commandes SQL
show tables
describe *nom de la tables*
=== Gérer les traductions ===
Gérer les traductions sur framadate et très simple, les développeurs ne s'occupent que de la version anglaise .
Pour gérer les traductions, il faut faire deux choses :\\
**Modifier le en.json**\\
rajouter dans le dossier /locale/en.json selon ce format ( ici avec edit name )'' "Edit the name": "Edit name"'', si la page n'existe pas il faut rajouter le nom de la page avec ''"nomdelapage {"edit the name" : "edit name"}''\\
Il faut insérer les variables dans l'ordre alphabétique.
**Modifier l'HTML** :\\
Chaque contenu apparaissant à l'écran doit avoir ce format'' {__('nomdelapage', 'motvisible')}''
=== linux : commandes utiles ===
* **Commande : cd**
cd
déplace le dossier courant vers la destination
* **Commande : ls**
ls [-al]
affiche le contenu du dossier courant (avec les droits d'accès avec les option -al)
* **Commande : chmod**
chmod
change les droits d'accès d'un fichier/dossier
* **Commande : chown**
chown : -R
change le propriétaire d'un fichier/dossier (* => tous)
* **Commande : cat et nano**
cat / nano
affiche le contenu d'un fichier/permet de le modifier
* **Commande : locate et find**
locate / find -name
trouve un fichier sur la machine (locate se base sur l'index : si vous cherchez un fichier récent, il n'est peut-être pas indexé et il faut le chercher avec la commande find, qui est plus longue)
=== Docker : commande utile ===
* **Commande : docker ps**
docker ps
liste les containers dockers
* **Commande : docker supprime les images**
rmi $(docker images -q)
Supprime toute les images de tout les containers , ce qui peut être utile puisque les images consomment beaucoup de place.
==== Bonne pratique ====
=== code en général : ===
* respecter les indentations
* respecter les choix de nommage : snakecase ou camelcase (pas les deux)
=== éditeur de texte : ===
Utiliser un éditeur de texte comme [[https://atom.io|atom]], qui permet de faire des recherches globales sur tout le projet et ainsi trouver tout les liens entre les différentes pages.
=== Conseil d'utilisation de git : ===
* forker le projet
* faire une branche à partir de la branche master pour chaque issue (git checkout)
* faire plusieurs commit : 1 par changement fonctionnel ou technique (ajout d'un bouton + fonction associée, etc...)
* faire les mises à jour de Framadate sur la branche master.
* gitignore des fichiers qui ne doivent pas être publics (éviter les push force)
* Utiliser [[https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation|Php fixer]] pour respecter les normes d'indentation.