Eléphanteau du PHP |
11 Messages
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.