90

J'ai pas trop d'avis sur les sujets là triso mais je suis l'avancement.
Encore merci smile
avatar

91

En parlant d’avancement :
¤ Envoi des mots de passe par mail : OK
¤ Possibilité pour le votant de changer son pass : OK
¤ Possibilité pour l’admin de changer son username/pass : OK
¤ Transfert du compte admin : OK
¤ Réception d’un nouveau pass en cas d’oubli : OK

¤ Réglage des dates de début et de fin de scrutin : à faire…
¤ Affichage du résultat une fois le scrutin terminé : à faire…
¤ Archivage automatisé du résultat d’un scrutin : à faire…

Que manque-t-il encore ?
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

92

- Réglage des choix de vote par l'admin?
- ya une securité qd tu votes si tu choisis plus de choix que spécifié (ou eventuellement pour valider tes choix et pas risquer de se tromper)?
- ajout/suppression de votants (entre 2 votes pour la suppression)? D'ailleurs je me posais la question: est ce que la suppression d'une liste (comme l'ajout) est possible?
(parce que je me dis que tous les ans ya des gens qui arrivent et d'autres qui partent donc ça serait ptet plus facile mais si c'est pas possible c'est pas grave hehe)

avatar

93

[cite] wendy (./92) :
- Réglage des choix de vote par l'admin?[cite]Déjà fait, mais comme il n’y a pas encore de gestion des dates (je suis actuellement dessus), rien n’empêche l’admin d’ajouter/retirer des candidats alors que les votes sont en cours.
- ya une securité qd tu votes si tu choisis plus de choix que spécifié
Yep, le vote n’est pas comptabilisé s’il y a plus ou moins de noms choisis que ce qui est autorisé (j’ai ajouté un nombre minimum, pour interdire par exemple les votes blancs).
(ou eventuellement pour valider tes choix et pas risquer de se tromper)?
J’y ai pensé, mais je n’ai pas fait de validation.Par contre, tu as un beau pop-up qui t’annonce :
Attention !
Une fois votre vote confirmé, vous ne pourrez plus le changer.

Confirmez-vous votre choix ?

[OK] [Annuler]
- ajout/suppression de votants
Déjà fait, mais seuls les votants n’ayant pas encore voté peuvent être supprimés.
(entre 2 votes pour la suppression)?
Le multi-scrutin n’est pas encore géré, je me concentre pour l’instant sur le scrutin unique, vu la dead-line bien proche.
D’ailleurs, l’ouverture du scrutin, c’est uniquement la journée du 31 octobre, ou c’est dès que l’appli’ est totalement fonctionnelle (lundi ?) jusqu’au 31 ?
Pour gérer le multi-scrutins, j’aurai presque 1 an pour m’en occuper grin (mais je compte bien évidemment faire ça aussi au plus tôt).
est ce que la suppression d'une liste (comme l'ajout) est possible?
Pour l’ajout/suppression des votants, oui, ça marche par liste, de même pour la suppression de candidats.
Par contre, l’ajout de candidats se fait un par un, mais s’il n’y a qu’une dizaine de noms, ça ira.
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

94

plutôt vote de lundi jusqu'au 31
et ok pr la validation, c'est ce à quoi je pensais.
et oui les candidats yen a pas 150 donc pas de problème.


Je sais pas comment je vais choisir confus
J'espère que ça vous reservira à tous les deux de toute façon...
avatar

95

Rhâ galère, en PHP, le seul vtff¹ moyen de parser une date (à partir d’une chaîne de format custom) sans écrire soi-même son parseur, c’est d’utiliser strptime()
Moi qui voulait tester la classe DateTime, je vais devoir me contenter de manipuler comme avant les chaînes et les timestamps (flemme de faire un parseur zzz).
Heureusement, ça devrait être corrigé dans PHP 5.3, il était temps !
Y aurait-il donc si peu de développeurs PHP dans le monde pour que de tels manques assez graves mettent des années à être détectés et corrigés ?


Rhâââ, vtff² : strptime() est marqué disponible depuis PHP 5 >= 5.1.0, je suis en 5.2.0, et pourtant, je me mange un « <b>Fatal error</b>: Call to undefined function strptime() in <b>blabla</b> on line <b>NN</b> ».
C’est lourd !

Correction après relecture de la doc :
Note:
Cette fonction n'est pas implémentée sous Windows.
vtff³
Donc même si ça marchera chez vince, pas moyen de tester chez moi, et comme on ne sait pas ce qu’il y a à l’ED, mieux vaut être prudent.
Allez, apuka parser à la main zzz… (enfin non, avec preg_match(), je suis pas fou grin !)
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

96

utilise plutot strtotime & date hehe

(bon page d'auto-administration des utilisateurs (leur page de profile quoi) et c'est fini hehe)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

97

Godzil (./96) :
utilise plutot strtotime & date hehe
fleche
strtotime()
essaye de lire une date au format anglais US dans la chaîne time
Franchement, je ne me vois pas demander à l’admin d’entrer une date « au format anglais US », c’est anti-pratique au possible embarrassed
Godzil (./96) :
(bon page d'auto-administration des utilisateurs (leur page de profile quoi) et c'est fini hehe)
Tu gères déjà les dates de début et fin ?
Rhâ, je suis à la bourre !
Par contre, tu parles du profil des votants, mais n’oublie pas que, cette année, on ne dispose que d’une liste de mails, rien de plus.
Bon OK, pour les années suivantes, c’est plus user friendly de fournir un profil complet, mais je verrai ça après le 31 wink.
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

98

2]))."\n"; ?>
Je trouve ça :Historically, the "English" text to date parsers in PHP only accept the illogical American
format of "mm/dd/yyyy". In this case, don't use strtotime, construct the date manually e.g :

<?php
        $r = "29/9/2008";

        $date = explode("/",$r);
        echo date("D d M",mktime(0,0,0,$date[1],$date[0],$date[
(ça vient de là http://uk.php.net/strtotime ; il y a peut-être d'autres commentaires intéressants)
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

99

[nosmile]C’est à peu de chose près ce que j’ai fait oui !
J’ai juste un preg_match() à la place de l’explode(), dans la mesure où je n’ai pas que le slash comme séparateur.
	function parseDateShort( $date ) {
		if ( preg_match( '~(\d{4})/(\d{2})/(\d{2})\-(\d{2}):(\d{2})~', $date , $detail ) ) {
			return mktime( $detail[ 4 ], $detail[ 5 ], 0, $detail[ 2 ], $detail[ 3 ], $detail[ 1 ] ) ;
		}
		return time() ;
	}

	function formatDateShort( $timestamp ) {
		return strftime( '%Y/%m/%d-%H:%M', $timestamp ) ;
	}

	function formatDateLong( $timestamp ) {
		setlocale( LC_ALL, 'fr' ) ;
		return strftime( '%A %d %B %Y à %Hh%M', $timestamp ) ;
	}
En effet, l’admin écrit/lit avec le format nommé ici « short », à savoir « AAAA/MM/JJ-hh:mm », format humainement lisible et compréhensible.
Le format « long » sert à donner un joli affichage au votant wink.

Rhâ, pourquoi le [nosmile] ne peut-il pas être restreint à l’intérieur du [pre][/pre] ?
D’ailleurs, pour n’est-ce pas automatique ?
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

100

pourquoi ne pas faire des <select> pour les dates ?
avatar
I'm on a boat motherfucker, don't you ever forget

101

J’aime pas grin !
Et puis ça n’empêche pas de sélectionner le 31 février, par exemple, donc bon…
S’il existait une fonctionnalité de calendrier (avec la tête de celui de Windows, des yBlogs ou de JIRA), je ne dis pas, mais là, bof, je ne vois pas la vraie plus-value des <select>.
Mais ce n’est qu’un avis personnel sur la question wink !
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

102

J’ai une petite question sur la gestion des dates.
En effet, une des règles est d’autoriser l’édition de la liste des candidats uniquement avant le début du scrutin.
Cependant, si l’admin veut fausser les résultats, la faille suivante existe (je donne un exemple de mise en situation) :
1/ l’admin fixe le début du scrutin au lundi à 14h
2/ l’admin établit la liste des candidats le lundi matin, avant 14h
3/ à partir de lundi à 14h, la liste des candidats est fixée, et les votants commencent à élire les candidats de leur choix
4/ lundi soir à 23h, quand personne n’utilise l’application, l’admin déplace le début du scutin au mardi à 14h
5/ l’admin peut alors modifier la liste des candidats, il supprime le candidat X puis le recrée
6/ l’admin refixe le début du scrutin au lundi à 14h
Et hop, ni vu ni connu, l’admin à remis le compteur de votes du candidat X à 0 neutral

Pour pallier cette faille, j’ai trouvé plusieurs solutions :
A/ enregistrer le choix de chaque votant, et comptabiliser les voix à partir de ces informations (pour que le point 5 ne remette pas le compteur du candidat X à 0)
B/ interdire de modifier la date de début une fois celle-ci dépassée (pour empêcher le point 4)
C/ interdire d’avancer la date de début à un moment précédant cette modification (pour empêcher le point 6 : le résultat est faussé, mais la modification est visible)
D/ interdire de modifier la date de début dès qu’au moins un votant a voté (pour empêcher le point 4)

Déjà, je suis contre la solution A, le caractère anonyme du vote ne serait pas respecté.
Le gros souci de la solution B, c’est que si l’admin règle par erreur la date au mois dernier, par exemple, le scrutin est lancé immédiatement et la liste des candidats est bloquée, alors qu’il n’avait peut-être pas fini de la remplir.
Le problème de la solution C, c’est que même si la tricherie est visible, le mal est fait.
Finalement, il ne reste que la solution D qui, d’après moi, n’entraîne aucun souci.

Vous allez me dire, pourquoi ce post alors que la solution D est toute trouvée ?
En réalité, je n’ai pensé à cette solution qu’après avoir écrit ce pavé et juste avant de l’envoyer, et ça m’aurait fait chier d’avoir passé une demi-heure sur ce pavé au lieu d’être sur le code et de ne pas vous en faire profiter, ce qui aurait été une demi-heure de vraiment perdue grin.

Cependant, si vous avez une autre solution encore meilleure que la D, je suis preneur !
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

103

euh il suffit pas d'interdire de fixer la date d'ouverture dans le passé ?
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

104

Je conseillerais aussi d'interdire d'avancer la date de fin du scrutin une fois le scrutin commencé.
avatar
I'm on a boat motherfucker, don't you ever forget

105

ca peut etre pratique si y'a le moindre probleme pourtant...

106

Sally (./103) :
euh il suffit pas d'interdire de fixer la date d'ouverture dans le passé ?
C’est très exactement la solution B.
Ainsi, au moment de faire le point 6 (lundi à 23h), il sera impossible de remettre la date de début au lundi à 14h, donc tout le monde verra que la date a été trafiquée (les dates de début et de fin sont en effet affichées en clair sur les pages).
Mais bon, le mal sera déjà fait, le résultat aura été faussé.
damnvoid (./104) :
Je conseillerais aussi d'interdire d'avancer la date de fin du scrutin une fois le scrutin commencé.
Je n’ai pas abordé le cas de la date de fin dans la mesure où, même si, au moment du point 4 (lundi à 23h), l’admin fixe la date de fin au lundi à 22h (dans son passé, donc), la liste des candidats n’est pas modifiable pour autant.
Cependant, ça marche dans le cas du mono-scrutin, pas dans le cas du multi-scrutin où la faille réapparaît (l’admin n’ayant qu’à clore le scutin du lundi après-midi et à en recréer un nouveau commençant au lundi à 14h, le seul impact visible sera que les personnes ayant déjà voté pourront le faire à nouveau et s’apercevront de quelque chose).
Bref, je réfléchirai à la question quand j’en serai au multi-scrutin, mais merci d’avoir soulevé ce point hehe.
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

107

Pour la date de fin, je pensais pas à la même faille, mais au cas où l'admin termine le scrutin (en déplaçant la date de fin à un instant très proche) dès que le résultat actuel lui convient.
avatar
I'm on a boat motherfucker, don't you ever forget

108

Ah oui, aussi.
Cependant :
1/ ça se verra (et pas qu’un peu tongue)
2/ l’admin n’a pas accès au résultat actuel, il ne peut donc pas savoir si ça lui convient (sauf s’il accède directement à la BDD, mais dans ce cas il est infiniment plus simple pour lui de tricher en modifiant directement les données de la base plutôt qu’en essayant de contourner les restrictions imposées par l’interface PHP)
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

109

Pourquoi ne pas simplement logger toutes les interventions de l'admin ? Si il cherche à exploiter une faille ça se verra... (bon après faut aussi que ça soit assez fool-proof pour que ça arrive sans le faire exprès)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

110

Ben non, c'est pas très exactement la solution B confus (et je suis d'accord avec neuroo, ça pourrait éventuellement être utile d'avancer la date d'ouverture, en annulant le scrutin, s'il y a un problème). Je ne propose pas qu'il soit interdit d'avancer la date d'ouverture une fois qu'elle est passée, mais juste qu'il soit impossible, à tout moment, de la fixer à une date déjà passée.

C'est tellement différent de la solution B que justement ça évite « Le gros souci de la solution B [où] l’admin règle par erreur la date au mois dernier » : s'il essaye de faire ça il se prend un message d'erreur et ça ouvre pas le scrutin, au lieu de l'ouvrir immédiatement et de verrouiller le système ^^. On peut aussi envisager un avertissement si c'est très bientôt (pour s'assurer qu'il a entré toutes les données avant l'ouverture)

Ensuite s'il y a un problème après l'heure d'ouverture, la chose logique à faire me semble être de permettre l'annulation provisoire et l'avancement de la date d'ouverture, par contre bien sûr il faut prévenir les électeurs ayant déjà voté que leur vote est annulé, c'est la difficulté, mais bon.
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

111

En meme temp l'admin il peut aussi acceder au logs hein ^^

Donc bon, des qu'on a un controle un peu "haut" on peut faire un peu ce qu'on veux...
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

112

./110 > Mmh, ton analyse me donne une idée :
¤ interdire de régler la date de début dans le passé (plus exactement avant now+5', avec un avertissement si la date de début est dans moins d’1h (30' ?))
¤ une fois le scrutin commencé, bloquer la modification des dates, min/max de choix et liste des candidats
¤ permettre une annulation d’urgence du scrutin, avec envoi d’un mail à tous ceux qui avaient déjà voté (*), et possibilité de créer un nouveau scrutin
Bon, j’ai plus qu’à défaire ce que j’ai codé (à savoir bloquer les modifications dès que quelqu’un a voté), cette nouvelle proposition me paraît plus propre.

(*) Il n’y a aucune difficulté à ça, et l’admin ne peut pas empêcher ces envois autrement qu’en bidouillant directement la BDD (auquel cas il ferait mieux de changer directement les résultats) ou en coupant le serveur SMTP (si l’admin du vote n’est pas l’IT de l’ED, ça devrait aller).
Par contre, comme il a normalement accès aux fichiers de configuration de l’appli’, il peut virer le texte du mail prévenant de cette annulation, et je ne vois pas trop comment empêcher ça sorry.
Enfin bon, tout ça, c’est dans l’hypothèse d’un admin qui essaie de tricher sur le vote, donc si c’est quelqu’un d’extérieur, ça réduit les risques grin.

./111 > Yep, cf. ./108.2 grin !
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

113

D'ou ma structure de table ou les contraintes entre les tables font qu'on ne peut pas supprimer de compte qui a déja voté hehe (idem pour les choix)

(et le compte de vote n'est pas lié a l'ouverture/fermeture du vote)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

114

Sur quel point ton « D’où » rebondit-il ?
C’est sans doute parce qu’il se fait tard et que mon cerveau tourne au ralenti zzz, mais je ne vois pas ce qui entraîne ton post.
En plus, avec le changement d’heure, je ferais mieux de me coucher tout de suite.
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

115

(c'était la fatigue aussi je pense hehe je disais juste que vu les contraintes (foreign key) entre les tables sur mon appli, tu ne peut effacer de votant (ou de choix de vote) si ils ont été utilisé (donc voté)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

116

Ah OK !
Tu fais ça du côté SQL, moi je fais ça du côté PHP.
Et je ne teste pas si un candidat a déjà reçu des voix quand l’admin tente de l’effacer, dans la mesure où, s’il a reçu des voix, c’est que le scrutin a déjà commencé et que la liste des candidats est figée par ailleurs (alors que la liste des votants, elle, doit pouvoir évoluer même une fois le scrutin commencé).
Chacun son choix de conception, l’important c’est que ça marche bien wink !
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

117

Bah je ne teste pas non plus directement hein ^^

C'est un effet de bord en realitée, mais ça tombe bien wink

(J'ai voulu sur ce projet tester des trucs sur MySQL/PHP (MySQLi, InnoDB, ...) que je n'avais encore jamais testé, donc voila ^^)

(mais sinon ma liste de "choix" est "intouchable" si le scrutin à commencé, mais la liste de votant peut être allongé tant que le vote n'est pas fini, mais il me semble que c'est les criteres pour l'application hehe)

Ce qui m'énerve par contre, c'est d'être dans l'impossibilité de faire un test de charge avant la mise en service... Apriori il ne devrait pas y avoir de problèmes mais bon, avec des apriori on pourrais mettre paris en bouteille wink)
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

118

Héhé, moi c’est sur mon précédent projet PHP que j’ai testé InnoDB hehe, mais je ne l’ai pas fait sur le présent projet, mes 4 tables sont indépendantes, je n’ai aucun besoin de foreign key.
Par contre, j’utilise MySQLi depuis longtemps tongue, et en style orienté objet s’il vous plaît grin.

Sur le présent projet, ce que je teste, c’est la modularité poussée à fond, avec plein de fichiers répartis dans une arborescence logique, comme les packages de Java.
Le but est de créer une architecture générique, un squelette de site réutilisable pour n’importe quel autre projet : je compte pouvoir réutiliser tel quel environ un quart des fichiers PHP pour mes futurs projets.
Déjà là, tout ce qui est login/logout vient de copiés-collés-adaptés de mes projets précédents, mais là j’ai redécoupé mes fichiers de manière à n’avoir qu’à les copier tel quel dans le futur, sans avoir à sélectionner ce que je copie-colle.

Un autre truc que je teste, c’est l’externalisation de la configuration et d’une partie du texte affiché, de manière à ce que l’utilisateur final, autre que moi, puisse configurer et modifier du texte facilement, sans avoir à fouiller tous les fichiers PHP.
D’habitude, l’utilisateur final, c’est moi, donc je m’en fous d’avoir à éditer directement les PHP, mais j’essaie désormais d’avoir une optique plus tournée vers l’extérieur (et sur le présent projet, c’est assez important).
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

119

Ethaniel (./118) :
Un autre truc que je teste, c’est l’externalisation de la configuration et d’une partie du texte affiché, de manière à ce que l’utilisateur final, autre que moi, puisse configurer et modifier du texte facilement, sans avoir à fouiller tous les fichiers PHP.


Tu résous comment l'externalisation des texte, si il faut y inclure des variables dedans ?

Une classe perso ? ou une fonctions de PHP ?

(moi ce qui me manque c'est le '%' de python sur les chaines sad cf le topic : topics/116046-formatage-equivalent-a-python )
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

120

perso j'utilise une fonction "printf-like" pour externaliser les textes, ce qui donnerait grosso-modo ça :

fr.php:
---
$strings = array
(
    'home.welcome'    => 'Bonjour {login}, il est {time}.'
);

home.php:
---
[...]
echo tra ('home.welcome', array ('login' => 'Godzil', 'time' => Locale::getTime ()));
[...]

C'est "tra" qui va faire les remplacements dans la chaine avec les valeurs du tableau passé en paramètre. Un truc pas tout à fait exact dans cet exemple : c'est la fonction tra qui se charge de ce qu'est censée faire la classe "Locale" ici (toutes les transformations de texte genre date, heure & co qui diffèrent selon la langue choisie).

Au fait vous êtes rigolos avec vos "tests de charge" sur une appli qui doit supporter 150 users grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)