par
Mooks » 24 janv. 2017, 13:02
Merci pour la réponse Spols.
Concernant le cache des fonctions natives, c'est une bonne remarque. Cependant, dans mon code, la variable associée à ce get_post_type() est tantôt $current_cpt, tantôt $cpt_in_use ou encore $actual_post_type (me demande pas pourquoi, je n'ai pas vraiment cherché à avoir les mêmes noms de variables pour un résultat donné). Et du coup, vu que le nom de la variable change, je m'étais dis que le cache allait être généré 3 fois pour ces 3 variables. Mais je me trompe peut-être, et ce qui est mis en cache ne sera pas la variable, mais le résultat de la requête SQL c'est bien ça?
A vrai dire, avant ton post, j'étais en train de pencher sur la création d'un fichier unique contenant mes variables globales, que j'aurais inclus avec un require_once dans mon functions.php (mon functions.php étant exclusivement constitué de require_once, vu que j'ai opté pour la segmentation de mon code en fichiers).
Voici à quoi ressemble mon functions.php actuellement :
Code : Tout sélectionner
<?php
/*------------------------------------------------------------------------------
FRONTEND
------------------------------------------------------------------------------*/
// #1 - Structure HTML globale
require_once( get_stylesheet_directory() . '/template-elements/frontend/global-html-structure.php' );
// #2 - Menu
// Menu principal
require_once( get_stylesheet_directory() . '/template-elements/frontend/menu/main-menu.php' );
// Menu secondaire et hyperliens associés
require_once( get_stylesheet_directory() . '/template-elements/frontend/menu/sub-menu-cpt.php' );
// #3 - Grids (Queries associées et génération HTML)
require_once( get_stylesheet_directory() . '/template-elements/frontend/grids.php' );
// #4 - Info-box (CPT, taxonomies, plateformes, liens commerciaux)
require_once( get_stylesheet_directory() . '/template-elements/frontend/info-box.php' );
// #5 - Tabs commentaires et alternatives
require_once( get_stylesheet_directory() . '/template-elements/frontend/tabs-alternatives-comments.php' );
// #6 - Sidebars
require_once( get_stylesheet_directory() . '/template-elements/frontend/sidebar.php' );
// #7 - Contenu conditionnel
require_once( get_stylesheet_directory() . '/template-elements/frontend/conditional-content.php' );
/*------------------------------------------------------------------------------
BACKEND
------------------------------------------------------------------------------*/
// #1 - Enqueue & register-cpt
// Register Custom Post Types
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/register-cpt.php' );
// Register Taxonomies
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/register-taxonomies.php' );
// Register Sidebar
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/register-sidebars.php' );
// Enqueue Styles & Scripts
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/styles-scripts-enqueue.php' );
// #2 - Save-post actions
require_once( get_stylesheet_directory() . '/template-elements/backend/automatisation/save-post-actions.php' );
// #3 - Paramètres des images
require_once( get_stylesheet_directory() . '/template-elements/backend/thumbnails-settings.php' );
// #4 - Tweaks
require_once( get_stylesheet_directory() . '/template-elements/backend/wp-tweaks.php' );
// #5 - Fonctions custom génériques
require_once( get_stylesheet_directory() . '/template-elements/generic-custom-functions.php' );
// #6 - Duplication de post
require_once( get_stylesheet_directory() . '/template-elements/backend/post-duplication.php' );
// #7 - Actions & filtres => upload image
require_once( get_stylesheet_directory() . '/template-elements/backend/automatisation/img-upload-actions.php' );
D'un point de vue pratique, ça aurait été top : ce fichier central m'aurait permit de déclarer mes variables les plus utilisées, afin de les appeler directement sans avoir à tout redéclarer. La lisibilité du code aurait été parfaite au regard de la segmentation en fichiers séparés originelle de mon code, et j'y aurai gagné aussi en terme de productivité/maintenance avec des variables globales explicites et facilement mémorisable.
J'ai une dernière question : d'un point de vue technique, j'aimerais connaitre les inconvénients d'une variable globale. J'ai souvent lu que ce n'était pas forcément une bonne pratique et me demande bien pourquoi.
Merci pour la réponse Spols.
Concernant le cache des fonctions natives, c'est une bonne remarque. Cependant, dans mon code, la variable associée à ce get_post_type() est tantôt $current_cpt, tantôt $cpt_in_use ou encore $actual_post_type (me demande pas pourquoi, je n'ai pas vraiment cherché à avoir les mêmes noms de variables pour un résultat donné). Et du coup, vu que le nom de la variable change, je m'étais dis que le cache allait être généré 3 fois pour ces 3 variables. Mais je me trompe peut-être, et ce qui est mis en cache ne sera pas la variable, mais le résultat de la requête SQL c'est bien ça?
A vrai dire, avant ton post, j'étais en train de pencher sur la création d'un fichier unique contenant mes variables globales, que j'aurais inclus avec un require_once dans mon functions.php (mon functions.php étant exclusivement constitué de require_once, vu que j'ai opté pour la segmentation de mon code en fichiers).
Voici à quoi ressemble mon functions.php actuellement :
[code]<?php
/*------------------------------------------------------------------------------
FRONTEND
------------------------------------------------------------------------------*/
// #1 - Structure HTML globale
require_once( get_stylesheet_directory() . '/template-elements/frontend/global-html-structure.php' );
// #2 - Menu
// Menu principal
require_once( get_stylesheet_directory() . '/template-elements/frontend/menu/main-menu.php' );
// Menu secondaire et hyperliens associés
require_once( get_stylesheet_directory() . '/template-elements/frontend/menu/sub-menu-cpt.php' );
// #3 - Grids (Queries associées et génération HTML)
require_once( get_stylesheet_directory() . '/template-elements/frontend/grids.php' );
// #4 - Info-box (CPT, taxonomies, plateformes, liens commerciaux)
require_once( get_stylesheet_directory() . '/template-elements/frontend/info-box.php' );
// #5 - Tabs commentaires et alternatives
require_once( get_stylesheet_directory() . '/template-elements/frontend/tabs-alternatives-comments.php' );
// #6 - Sidebars
require_once( get_stylesheet_directory() . '/template-elements/frontend/sidebar.php' );
// #7 - Contenu conditionnel
require_once( get_stylesheet_directory() . '/template-elements/frontend/conditional-content.php' );
/*------------------------------------------------------------------------------
BACKEND
------------------------------------------------------------------------------*/
// #1 - Enqueue & register-cpt
// Register Custom Post Types
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/register-cpt.php' );
// Register Taxonomies
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/register-taxonomies.php' );
// Register Sidebar
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/register-sidebars.php' );
// Enqueue Styles & Scripts
require_once( get_stylesheet_directory() . '/template-elements/backend/enqueue-and-register/styles-scripts-enqueue.php' );
// #2 - Save-post actions
require_once( get_stylesheet_directory() . '/template-elements/backend/automatisation/save-post-actions.php' );
// #3 - Paramètres des images
require_once( get_stylesheet_directory() . '/template-elements/backend/thumbnails-settings.php' );
// #4 - Tweaks
require_once( get_stylesheet_directory() . '/template-elements/backend/wp-tweaks.php' );
// #5 - Fonctions custom génériques
require_once( get_stylesheet_directory() . '/template-elements/generic-custom-functions.php' );
// #6 - Duplication de post
require_once( get_stylesheet_directory() . '/template-elements/backend/post-duplication.php' );
// #7 - Actions & filtres => upload image
require_once( get_stylesheet_directory() . '/template-elements/backend/automatisation/img-upload-actions.php' );[/code]
D'un point de vue pratique, ça aurait été top : ce fichier central m'aurait permit de déclarer mes variables les plus utilisées, afin de les appeler directement sans avoir à tout redéclarer. La lisibilité du code aurait été parfaite au regard de la segmentation en fichiers séparés originelle de mon code, et j'y aurai gagné aussi en terme de productivité/maintenance avec des variables globales explicites et facilement mémorisable.
J'ai une dernière question : d'un point de vue technique, j'aimerais connaitre les inconvénients d'une variable globale. J'ai souvent lu que ce n'était pas forcément une bonne pratique et me demande bien pourquoi.