Objectifs :

Utiliser un framework qui gère les transactions avec une base de données MySQL ainsi que l'écriture des formulaires.

Développer la base de données de façon suffisante et selon des conventions afin que l'appli sache construire les bonnes relations entre chaque tables de façon spontanée.


La production :

La mise en relation des tables ! J'ai utilisé 3 méthodes ==> une entrée d'une table HasMany, HasOne et HasAndBelongsToMany autre(s) entrées d'une autre table. Les 2 premières sont relativement simples, elles ont tout juste besoin d'un champ nom_d'un_autre_table_id pour signifier à qui elles appartiennent ou qui leur appartient. Pour les tables HasAndBelongsToMany (users et competences_lists), il m'a fallu faire appel à une JOIN table qui lie l'id de chaque composants associés. Ce qui me permettra d'utiliser le même terme pour une liste de compétences pour plusieurs utilisateurs (exemple : Formations spéciales).

Après, l'appli CakePHP génére pour moi les fichiers nécessaires à l'emboîtement des tables grâce à une console en ligne de commande qui me sauve pas mal de temps! Suffit plus qu'à correctement régler les fichiers de config (base de données, type de Sessions (dans les cas de SAFE MODE ;) ))

Concrètement, la seule page que j'ai faite à la main est celle où l'on voit le CV. Les autres ont été générées par la cuisson + modification incomplète pour gérer les droits d'accès et de modification.

JE SAIS QUE TOUT CECI peut avoir l'air de charabia, aussi n'hésitez pas à me demander de développer davantage des parties afin de les rendre plus compréhensible !!


Difficultés, auto-évaluation, remarques :

Le framework CakePHP est un outil open-soure en constante évolution et pas mal des fonctionnalités que j'utilise sont encore en traitement (trac), donc je dois toujours faire gaffe à savoir si j'utilise les bonnes commandes ou si elles ne sont pas tout simplement buggé. Une opportunité de plonger dans le code de l'appli et de comprendre comment est généré le code :P

Bon, comme d'habitude, les transferts de données d'une base MySQL à l'autre sont complètement pourri, traite super mal le format unicode et rajoute en boucle des caractères isomorphiques... Un jour peut être ?

En attendant, j'ai trouvé une seule façon de faire des transferts corrects et c'est en enregistrant l'exportation d'une base de données dans un fichier. Si on utilise un copier-coller, les caractères "à" sont buggés (en tout cas sous Windows). Donc, pour les transferts du contenu de base de données MySQL => toujours transmettre l'exportation via un fichier.

Cette application est vraiment mimi, mais je n'ai pas le temps de la développer plus avant, n'importe quel gamin pourrait la hacker pour y introduire et modifier un paquet de données (rien de dangereux autre que de bourrer la base de données) malgré le login que j'ai exigé à l'entrée de l'appli. Il reste pas mal de boulot pour la rendre viable pour un groupe de personnes (ajout de template de CV, meilleur gestion des droits d'accès, sortie en PDF, invite et permission de lecture spécifique aux invités, développement d'un standard ??, etc.). Comme d'habitude, il n'y a pas de limites à ce qu'on pourrait rajouter à une appli.


Ressources utilisées, bibliographie :