« Frankiz III » : différence entre les versions

De WikiBR
(Mon premier post dans ce forum, je suis coiffeuse)
(Récupération de l'ancienne version)
Ligne 1 : Ligne 1 :
Agréable après-midi  à tous,
{{menu Frankiz}}
== Structure du site ==


Pour débuter , donnez-moi l'opportunité  de vous démontrer ma gratitude pour toutes les excellentes connaissances que j'ai lues  sur cet formidable forum .
On travaille avec platal, ce qui a imposé une certaine modification de la structure de dossiers.


Je ne suis pas sure  d'être au bon endroit mais je n'en ai pas trouvé de meilleur.
* '''bin''' : contient les scripts utilisés par frankiz


Je réside  à Selkirk, ca .   J'ai 25 années  et j'éduque  trois  très gentils  enfants qui sont tous âgés entre 5 ou  13 années  (1 est adopté).  J'aime beaucoup  beaucoup les animaux de compagnie et j'essaie de leur donner  les fournitures qui leur rendent l'existance  plus agréable.
* '''classes''' : contient les classes spécifiques à frankiz, ainsi que la classe platalglobals.php (dérivée à partir de platalglobals.php.in), qui contient une partie de la conf


Merci d'avance pour toutes les super  débats  dans le futur  et je vous remercie surtout  de votre compassion  pour mon français moins que parfait: ma langue maternelle est le vietnamien  et je tempte  d'éviter les erreurs  mais c'est très ardu !
* '''core''' : contient le core de plat/al, voir ci-après la partie 'git-submodule'


A la prochaine
* '''configs''' : contient les fichiers de config ; générer les versions utilisées à l'aide du Makefile [non encore implémenté]


Roberta
* '''htdocs''' : les fichiers 'initiaux' et statiques :
** frankiz.php, qui initie le site
** .htaccess, qui contient les règles de réécriture (mettre à jour à partir de .htaccess.in quand on checkout sa version)
** les skins, les images fixes, le fkz.opensearch.xml pour la barre de recherche, les CSS
 
* '''include''' : les fichiers à inclure (fonctions, ...)
 
* '''modules''' : les modules, i.e les différentes pages (profil, annonces, activités, ...)
 
* '''old''' : contient les fichiers de frankiz 2.x (0<x<5), à terme devra être vide.
 
* '''platal''' : un checkout de platal, au début pour avoir le core, à terme pour pouvoir y piquer des fonctions et des includes (avec du ln -s)
 
* '''plugins''' : contient les plugins smarty, à savoir les instructions de mise en forme des variables en sortie
 
* '''spool''' : le cache des templates, les données, ...
 
* '''templates''' : les templates, i.e la mise en forme des variables fournies par les fichiers dans les modules
 
* '''upgrades''' : contient les scripts d'upgrade de la bdd, des dossiers, ... pour passer d'une version à une autre
 
== Coding rules, utilisation de git ==
 
=== Doc sur Git ===
On peut trouver de la doc sur git ici :
* [https://www.polytechnique.org/EquipeDevel/GitHowto#basics Polytechnique.org]
* [http://www.kernel.org/pub/software/scm/git/docs/user-manual.html Git User Manual]
* [http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html Git Tutorial]
 
=== Commits ===
 
* Le texte des commits est en anglais.
* Les commits sont atomiques (un commit ne modifie qu'une seule partie du code, cohérente ; on ne met pas à jour le core et le module d'annonces et le template des fiches TOL en un même commit)
* Le format typique d'un commit est :
 
Résumé
* Point 1 en détails
* Point 2 en détails
Signed-off-by: Blah <blah@frankiz.net>
 
Le 'signed-off by' est obtenu en utilisant
git-commit -s
 
== Remarques ==
 
Cette partie sert à lister les remarques venant au cours de l'analyse du code de plat/al
 
=== Généralités ===
 
=== include/security.inc.php ===
* fonctions ''check_ip'' et ''check_email'' : décider si on la veut, et créer la BDD qui va bien
* fonctions ''check_account'' et ''check_redirect'' : les comprendre, et voir si on en veut
* fonction ''send_warning_mail'' : corriger les trucs nécessaire ; j'aime assez l'idée ([[User:Xelnor|Xelnor]])
* fonction ''kill_session'' : créer le script adéquat
* fonctions ''udate_NbValid'' et ''update_NbNotifs'' : adapter à notre structure (requêtes et notifications en attente)
 
== Fonctionnement du site ==
Liste des fichiers appelés, dans l'ordre :
# '''htdocs/frankiz.php'''
## appelle ''include/frankiz.inc.php''
## Lance Plat/al (''platal->run()'')
## Charge le wiki : ''include/wiki/engine.php''
# '''include/frankiz.inc.php''' :
## Définit des variables globales de plat/al (nom des classes globale, de session, de page)
## Appelle ''core/include/platal.inc.php''
## Appelle ''include/security.inc.php''
## Appelle ''include/common.inc.php''
# '''core/include/platal.inc.php''' :
## Définit l'autochargement de classes
## Définit un certain nombre de fonctions (erreurs, encodage, redirection de page)
# '''include/security.inc.php''' : définit des fonctions de sécurité, non encore implémentées
# '''include/common.inc.php''' : définit des chemins alternatifs d'autoload (non encore utilisé), et la fonction principal d'autoload (qui appelle pl_autoload)
 
== Chemin de chargement de plat/al core ==
depuis htdocs/frankiz.php
* include/frankiz.inc.php
** core/include/platal.inc.php
*** core/include/misc.inc.php
*** core/classes/env.php
** include/security.inc.php
** include/common.inc.php
* core/classes/platal.php
** classes/platalglobals.php
*** core/classes/plglobals.php
** classes/frankizsession.php
*** core/classes/plsession.php
**** core/classes/s.php
**** core/classes/plflagset.php
** classes/frankizpage.php
*** core/classes/plpage.php
** core/classes/plmodule.php
*** modules/*.php
 
# '''include/frankiz/session.inc.php''' :
## Charge ''include/frankiz.misc.inc.php''
## Définit les cookies, voir à remplacer par les fonctions de plat/al
## Définit la classe FrankizSession, qui contient quelques anciennes fonctions, à réécrire.
# '''include/frankiz.misc.inc.php''' :
## Définit des fonctions de gestion de caractères, de proximité sonore, de sécurité
 
 
== Rédaction de doc ==
Il y a 2 doc à rédiger qui ça s'adressent à 2 types de personnes différentes :
# ceux qui doivent comprendre comment fkz fonctionne dans son ensemble, comprendre le code du coeur, etc.
# ceux qui codent un module particulier et seulement ça
;Pour les 1ers
:C'est dans le code que la doc (arborescence des classes, fonctions, etc.) doit se trouver par ce qu'il doivent *comprendre* le code. Donc le support de la doc : doxygen + pages wikiBR pour expliquer le code dans ses grandes lignes.
;Pour les 2èmes
:C'est plus un quelque chose du genre tuto avec seulement ce qu'il faut savoir pour coder un module. Support de la doc : WikiBR.
Ca serait bien qu'on propose au gens une espèce de petit '''kit de développement''' de module frankiz accessible a tous ceux qui ont déjà fait un peu de php, ceux là n'ont pas besoin de comprendre le code du coeur. ([[User:Qt|Qt]])
 
== Devel sur frankiz2 ==
'''A éviter''' : seulement si on ne peux pas faire autrement. On se concentre sur le devel de Frankiz3.
 
La marche à suivre est la suivante :
* créer le dossier adéquat dans son home sur gwennoz :
mkdir ~/public_html
* Y récupérer le code de frankiz2
git clone /home/git/frankiz.git frankiz2
* Mettre en place le fichier de configuration adéquat
cp ~xelnor/public_html/frankiz2/etc/config.php ~/public_html/frankiz2/etc/
* Mettre à jour la configuration dudit fichier (notamment les adresses mail)
* initialiser le cache
mkdir ~/public_html/frankiz2/cache
chmod a+rwx ~/public_html/frankiz2/cache
* On accède à la page par http://gwennoz/~user/frankiz2/htdocs/ (en remplaçant user par son login)

Version du 30 novembre 2010 à 18:14

Structure du site

On travaille avec platal, ce qui a imposé une certaine modification de la structure de dossiers.

  • bin : contient les scripts utilisés par frankiz
  • classes : contient les classes spécifiques à frankiz, ainsi que la classe platalglobals.php (dérivée à partir de platalglobals.php.in), qui contient une partie de la conf
  • core : contient le core de plat/al, voir ci-après la partie 'git-submodule'
  • configs : contient les fichiers de config ; générer les versions utilisées à l'aide du Makefile [non encore implémenté]
  • htdocs : les fichiers 'initiaux' et statiques :
    • frankiz.php, qui initie le site
    • .htaccess, qui contient les règles de réécriture (mettre à jour à partir de .htaccess.in quand on checkout sa version)
    • les skins, les images fixes, le fkz.opensearch.xml pour la barre de recherche, les CSS
  • include : les fichiers à inclure (fonctions, ...)
  • modules : les modules, i.e les différentes pages (profil, annonces, activités, ...)
  • old : contient les fichiers de frankiz 2.x (0<x<5), à terme devra être vide.
  • platal : un checkout de platal, au début pour avoir le core, à terme pour pouvoir y piquer des fonctions et des includes (avec du ln -s)
  • plugins : contient les plugins smarty, à savoir les instructions de mise en forme des variables en sortie
  • spool : le cache des templates, les données, ...
  • templates : les templates, i.e la mise en forme des variables fournies par les fichiers dans les modules
  • upgrades : contient les scripts d'upgrade de la bdd, des dossiers, ... pour passer d'une version à une autre

Coding rules, utilisation de git

Doc sur Git

On peut trouver de la doc sur git ici :

Commits

  • Le texte des commits est en anglais.
  • Les commits sont atomiques (un commit ne modifie qu'une seule partie du code, cohérente ; on ne met pas à jour le core et le module d'annonces et le template des fiches TOL en un même commit)
  • Le format typique d'un commit est :
Résumé

* Point 1 en détails
* Point 2 en détails

Signed-off-by: Blah <blah@frankiz.net>

Le 'signed-off by' est obtenu en utilisant

git-commit -s

Remarques

Cette partie sert à lister les remarques venant au cours de l'analyse du code de plat/al

Généralités

include/security.inc.php

  • fonctions check_ip et check_email : décider si on la veut, et créer la BDD qui va bien
  • fonctions check_account et check_redirect : les comprendre, et voir si on en veut
  • fonction send_warning_mail : corriger les trucs nécessaire ; j'aime assez l'idée (Xelnor)
  • fonction kill_session : créer le script adéquat
  • fonctions udate_NbValid et update_NbNotifs : adapter à notre structure (requêtes et notifications en attente)

Fonctionnement du site

Liste des fichiers appelés, dans l'ordre :

  1. htdocs/frankiz.php
    1. appelle include/frankiz.inc.php
    2. Lance Plat/al (platal->run())
    3. Charge le wiki : include/wiki/engine.php
  2. include/frankiz.inc.php :
    1. Définit des variables globales de plat/al (nom des classes globale, de session, de page)
    2. Appelle core/include/platal.inc.php
    3. Appelle include/security.inc.php
    4. Appelle include/common.inc.php
  3. core/include/platal.inc.php :
    1. Définit l'autochargement de classes
    2. Définit un certain nombre de fonctions (erreurs, encodage, redirection de page)
  4. include/security.inc.php : définit des fonctions de sécurité, non encore implémentées
  5. include/common.inc.php : définit des chemins alternatifs d'autoload (non encore utilisé), et la fonction principal d'autoload (qui appelle pl_autoload)

Chemin de chargement de plat/al core

depuis htdocs/frankiz.php

  • include/frankiz.inc.php
    • core/include/platal.inc.php
      • core/include/misc.inc.php
      • core/classes/env.php
    • include/security.inc.php
    • include/common.inc.php
  • core/classes/platal.php
    • classes/platalglobals.php
      • core/classes/plglobals.php
    • classes/frankizsession.php
      • core/classes/plsession.php
        • core/classes/s.php
        • core/classes/plflagset.php
    • classes/frankizpage.php
      • core/classes/plpage.php
    • core/classes/plmodule.php
      • modules/*.php
  1. include/frankiz/session.inc.php :
    1. Charge include/frankiz.misc.inc.php
    2. Définit les cookies, voir à remplacer par les fonctions de plat/al
    3. Définit la classe FrankizSession, qui contient quelques anciennes fonctions, à réécrire.
  2. include/frankiz.misc.inc.php :
    1. Définit des fonctions de gestion de caractères, de proximité sonore, de sécurité


Rédaction de doc

Il y a 2 doc à rédiger qui ça s'adressent à 2 types de personnes différentes :

  1. ceux qui doivent comprendre comment fkz fonctionne dans son ensemble, comprendre le code du coeur, etc.
  2. ceux qui codent un module particulier et seulement ça
Pour les 1ers
C'est dans le code que la doc (arborescence des classes, fonctions, etc.) doit se trouver par ce qu'il doivent *comprendre* le code. Donc le support de la doc : doxygen + pages wikiBR pour expliquer le code dans ses grandes lignes.
Pour les 2èmes
C'est plus un quelque chose du genre tuto avec seulement ce qu'il faut savoir pour coder un module. Support de la doc : WikiBR.

Ca serait bien qu'on propose au gens une espèce de petit kit de développement de module frankiz accessible a tous ceux qui ont déjà fait un peu de php, ceux là n'ont pas besoin de comprendre le code du coeur. (Qt)

Devel sur frankiz2

A éviter : seulement si on ne peux pas faire autrement. On se concentre sur le devel de Frankiz3.

La marche à suivre est la suivante :

  • créer le dossier adéquat dans son home sur gwennoz :
mkdir ~/public_html
  • Y récupérer le code de frankiz2
git clone /home/git/frankiz.git frankiz2
  • Mettre en place le fichier de configuration adéquat
cp ~xelnor/public_html/frankiz2/etc/config.php ~/public_html/frankiz2/etc/
  • Mettre à jour la configuration dudit fichier (notamment les adresses mail)
  • initialiser le cache
mkdir ~/public_html/frankiz2/cache
chmod a+rwx ~/public_html/frankiz2/cache