Adapter son code pour la 2.24 n° 17

Depuis la disparition de la variable $core et son remplacement par dcCore::app() un certain nombre de fonctions de rappel des behaviors n’ont plus besoin qu’on passe cette variable en paramètre, comme c’était fréquemment le cas auparavant.

Pour assurer la compatibilité, de nouveaux noms de behavior ont remplacé ceux-ci — un suffixe V2 a été ajouté à leur identifiant —, les anciens étant supprimés :

Avant :

# --BEHAVIOR-- adminBlogPreferencesForm
    dcCore::app()->callBehavior('adminBlogPreferencesForm', dcCore::app(), $blog_settings);

Après :

# --BEHAVIOR-- adminBlogPreferencesForm
    dcCore::app()->callBehavior('adminBlogPreferencesFormV2', $blog_settings);

Où vous constaterez la disparition du 1er paramètre.

Pour éviter de (trop) casser le code tiers un nouveau plugin, nommé dcProxyV2, fait maintenant partie de la distribution, à partir de la prochaine 2.24. Celui-ci fait l’interface entre les anciens behaviors (valides jusqu’à la 2.23.1) avec les nouveaux (valides à partir de la 2.24).

Ce plugin permet, sur l’appel d’un nouveau behavior (V2) d’appeler l’ancien avec le paramètre manquant. Exemple avec le behavior adminBlogPreferencesFormV2 qui provoquera aussi cet appel (ancienne signature) :

return dcCore::app()->callBehavior('adminBlogPreferencesForm', dcCore::app(), $blog_settings);

En pratique soit vous utilisez toujours les anciens behaviors et votre code devrait continuer à fonctionner comme avant, soit vous utilisez les nouvelles formes (suffixées V2) et vous enlevez le paramètre $core ou dcCore::app() de l’appel — si vous utilisiez callBehavior() — et vous supprimez ce paramètre des fonctions de rappel concernées (celles enregistrées avec addBehavior()).

Exemple avec la modification de la fonction de rappel pour l’ancien adminBlogPreferencesForm, avant :

public static function adminBlogPreferencesForm(dcCore $core, $settings)
{
    …

Après, utilisée pour le nouveau adminBlogPreferencesFormV2 :

public static function adminBlogPreferencesForm(dcSettings $settings)
{
    …

Voici les listes des behaviors concernés. Chacun de ceux-ci sont maintenant suffixés avec V2 et le paramètre $core a été supprimé de l’appel et doit l’être de la liste des paramètres de la fonction de rappel.

Le paramètre $core était habituellement positionné en 1re position sauf pour quelques uns d’entre eux pour lesquels il était en dernier, ceux-ci sont indiqués en italique.

Système

  1. coreBeforeLoadingNsFiles
  2. coreCommentSearch
  3. corePostSearch

Public

  1. publicAfterContentFilter
  2. publicAfterDocument
  3. publicBeforeContentFilter
  4. publicBeforeDocument
  5. publicBeforeReceiveTrackback
  6. publicContentFilter
  7. publicPrepend
  8. templateAfterBlock
  9. templateAfterValue
  10. templateBeforeBlock
  11. templateBeforeValue
  12. templateInsideBlock
  13. tplAfterData
  14. tplBeforeData

Admin

  1. adminBlogFilter
  2. adminBlogListHeader
  3. adminBlogListValue
  4. adminBlogPreferencesForm
  5. adminBlogsActionsPage
  6. adminColumnsLists
  7. adminCommentFilter
  8. adminCommentListHeader
  9. adminCommentListValue
  10. adminCommentsActions
  11. adminCommentsActionsPage
  12. adminCommentsSpamForm
  13. adminCurrentThemeDetails
  14. adminDashboardContents
  15. adminDashboardFavorites
  16. adminDashboardFavs
  17. adminDashboardFavsIcon
  18. adminDashboardItems
  19. adminDashboardOptionsForm
  20. adminFiltersLists
  21. adminMediaFilter
  22. adminPageFooter
  23. adminPagesActionsPage
  24. adminPagesListHeader
  25. adminPagesListValue
  26. adminPostFilter
  27. adminPostListHeader
  28. adminPostListValue
  29. adminPostMiniListHeader
  30. adminPostsActions
  31. adminPostsActionsPage
  32. adminPreferencesForm
  33. adminRteFlags
  34. adminSearchPageCombo
  35. adminSearchPageDisplay
  36. adminSearchPageHead
  37. adminSearchPageProcess
  38. adminUsersActions
  39. adminUsersActionsContent
  40. adminUserFilter
  41. adminUserListHeader
  42. adminUserListValue
  43. exportFull
  44. exportSingle
  45. importExportModules
  46. importFull
  47. importInit
  48. importPrepareDC12
  49. importSingle
  50. pluginsToolsHeaders
  51. pluginsToolsTabs
  52. restCheckStoreUpdate
  53. themesToolsHeaders
  54. themesToolsTabs

Nous reviendrons sur ce plugin dcProxyV2 plus tard, celui-ci intégrant aussi d’autres aspects pour assurer la compatibilité ascendante.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15520

Haut de page