Skip to content
Extraits de code Groupes Projets
  1. août 11, 2009
  2. août 10, 2009
  3. août 09, 2009
    • esj's avatar
      Suite annoncée de [14366]: la balise #MODELE et consorts indiquent le... · ea5c7d81
      esj a rédigé
      Suite annoncée de [14366]: la balise #MODELE et consorts indiquent le nsquelette et le numéro de ligne en cas d'utilisation fautive.
      ea5c7d81
    • esj's avatar
      Lors d'une inclusion par {{{#INCLURE}}}, le débusqueur donne à présent le... · 20677a77
      esj a rédigé
      Lors d'une inclusion par {{{#INCLURE}}}, le débusqueur donne à présent le squelette incluant et le numéro de ligne où cette balise utilise le fond fautif. Particulièrement utile lorsque plusieurs {{{#INCLURE}}} sont susceptibles d'être responsable de l'erreur.
      
      Pour parvenir à ça, il a fallu retarder la dénonciation de squelette inconnu,
      qui n'est plus assurée par public_styliser mais par récuperer_fond. Il s'ensuit que les fonctions public_parametrer et evaluer_fond (sur le trajet entre les deux fonctions susnommées) voient la spécification de leur résultat légèrement changer. Elles retournent:
          * False si le squellette existe mais a provoqué des erreurs de compilation (déjà signalées au moment de retourner le résultat);
          * la chaîne vide si le squelette est inconnu (et aucune erreur n'est encore signalée);
          * la page attendue si tout s'est bien passé (rien de changé ici).
      
      Dans le deuxième cas, la fonction recuperer_fond regarde si son troisième argument (les options) contient un index nommé 'compil', qui lui sert alors à localiser l'erreur. Pour l'instant seul {{{#INCLURE}}} fournit cette information. Affaire à suivre.
      20677a77
    • esj's avatar
      Suite de [14363]: structuration du code produit à travers un sprintf. Au... · b8fe746d
      esj a rédigé
      Suite de [14363]: structuration du code produit à travers un sprintf. Au passage, le code produit utilise maintenant str_repeat au lieu de le réinventer. Les tests unitaires sur les boucles donnent la même chose qu'auparavant.
      b8fe746d
  4. août 08, 2009
    • esj's avatar
      Renommage de {{{denoncer_inclure_dynamique}}} (car [14363] avait en fait... · 06b6af73
      esj a rédigé
      Renommage de {{{denoncer_inclure_dynamique}}} (car [14363] avait en fait renommé {{{fliquer_inclure_dynamique}}} en {{{memoriser_contexte_compil}}}) en {{{reconstruire_contexte_compil}}} avec un petit chgt de fonctionnalité, et petites améliorations pour avoir des appels au débusqueur plus uniformes.
      06b6af73
  5. août 07, 2009
    • esj's avatar
      La mal nommée (cf [14341]) {{{denoncer_inclure_dynamique}}} se nomme à présent... · 35c39ac6
      esj a rédigé
      La mal nommée (cf [14341]) {{{denoncer_inclure_dynamique}}} se nomme à présent {{{memoriser_contexte_compil}}} et retourne une chaîne plutôt qu'un tableau. Elle est systématiquement utilisée comme argument de {{{sprintf}}} pour pouvoir être neutralisée facilement en cas de besoin de diff entre code compilés. Les formats utilisés par {{{sprintf}}} permettent de mieux voir la structure du code produit, en particulier il est apparu que le cas du Select vide en toute fin de compilation ne pouvait jamais se produire car déjà traité en amont.
      35c39ac6
    • esj's avatar
      Ce perdant de PHP étant incapable de donner la ligne d'une faute de syntaxe... · d7b93475
      esj a rédigé
      Ce perdant de PHP étant incapable de donner la ligne d'une faute de syntaxe sans provoquer une erreur fatale, on fait désormais retourner à {{{public_compiler}}} non plus la concaténation des fonctions compilées, mais le tableau des boucles, contenant leur code compilé et leur contexte de compilation (plus le code de a fonction pincipale, vu comme une fausse boucle). Cela permet à {{{public_composer}}}:
      
      	* d'executer {{{if (@eval("return true; $code")) }}} sur le code de chaque fonction isolément, pour ne pas perdre la main en cas d'erreur de syntaxe et dire dans quelle boucle l'erreur se produit;
      
      	* de donner le contexte de compilation de la fonction fautive au débusqueur, qui peut ainsi construire ses liens de navigation, en particulier le lien "code" de la boucle fautive, ce qui permet enfin au débusqueur d'afficher du code PHP fautif, qu'on pourra éventuellement copier dans un fichier pour relecture par l'interpréte PHP pour refaire apparaître, mais hors site, le numéro de ligne.
      
      J'aurais bien aimé dispenser de cette dernière manipulation, mais ça semble définitivement impossible en PHP. Au moins, on n'a plus à trafiquer composer.php et/ou lire le cache des squelettes compilés pour localiser l'erreur, surtout quand on n'a pas les [http://videos.spip.org/spip.php?article115 outils de Cédric].
      
      La spécification du résultat de la fonction {{{public_compiler}}} est donc changée, mais ça ne concerne que ceux qui manipulent le code compilé explicitement.
      d7b93475
  6. août 06, 2009
  7. août 05, 2009
  8. août 04, 2009
    • cerdic's avatar
      report de [14345] · cf8418f4
      cerdic a rédigé
      cf8418f4
    • esj's avatar
      Le rare 3e argument de erreur_squelette vaut toujours var_mode_objet, on... · b49285e5
      esj a rédigé
      Le rare 3e argument de erreur_squelette vaut toujours var_mode_objet, on l'évacue de l'appel, ça permet de réduire les pré-supposés sur le débusqueur.
      b49285e5
    • esj's avatar
      Le débusqueur donne à présent aussi pour les requêtes fabriquées par le... · 7cb4d5ec
      esj a rédigé
      Le débusqueur donne à présent aussi pour les requêtes fabriquées par le compilateur la ligne où l'erreur intervient dans le squelette (cas assez rares où l'utilisateur écrit mal des opérandes de fonctions SQL comme REGEXP). Occasion de voir que les portages SQL n'étaient pas toujours cohérents> de l'un à l'autre mais aussi en interne:
      
      	* sql_countsel ne contrôlait pas bien une éventuelle erreur de sql_select, 
      	* sql_errno ne retournait pas toujours un code numérique.
      
      On rajoute dans le code compilé l'envoi du contexte de compil (toujours la même fonction {{{denoncer_inclure_dynamique}}} qui n'est donc toujours pas bien nommée), et un test de requête fautive pour éviter une cascade d'erreur ensuite.
      
      La fonction {{{sql_select}}} voit son dernier argument légèrement modifié: il peut être le contexte de compil, et s'interprète alors comme True (ça devrait être transparent). Les instances dans les différents portage ne retourne plus un tableau en cas d'erreur, mais seulement le texte brut de la requête, ça permet
      de ne plus dupliquer du code dans les portages.
      
      Il faudrait revoir trace_query, il y a des redondance quant au contexte de compil à présent.
      
      7cb4d5ec
    • salvatore's avatar
      langues (public) · b82fdac9
      salvatore a rédigé
      b82fdac9
    • salvatore's avatar
      langues (ecrire) · 4992e42a
      salvatore a rédigé
      4992e42a
    • salvatore's avatar
      langues (spip) · bc29f498
      salvatore a rédigé
      bc29f498
    • Fil's avatar
      report de [14336] correction de gestion de la langue · 780bb1c6
      Fil a rédigé
      780bb1c6
    • esj's avatar
      Scorie datant de [14321]. · 42ca741d
      esj a rédigé
      42ca741d
  9. août 03, 2009
Chargement en cours