débogage

Trucs et Astuces 1):

Drupal 7 Activer le mode de débogage php: (pour Drupal, vous mettriez ceci dans votre settings.php)

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Drupal 8 Activer le mode de débogage (settings.local.php ou settings.php)

$config['system.logging']['error_level'] = 'verbose';

 

watchdog (Drupal 7)

// Lorsque vous voulez déboguer une variable $ et que dpm ne le fait pas pour vous, vous devriez utiliser ceci:

watchdog('debug', '<pre>@print_r</pre>',
  array('@print_r' => print_r( $variable, TRUE))
);

watchdog (Drupal 8/9)

\Drupal::logger('TEST')->notice('<pre>' . print_r($variable, TRUE) . '</pre>');

Drupal message (Drupal 8)

\Drupal::messenger()->addMessage('<pre>' . print_r($variable, TRUE) . '</pre>', 'warning', TRUE);

Quand vous avez besoin d'un backtrace

Voici un exemple de backtrace utile. Le fichier doit être créé à la racine du site web.

if ($fp = fopen('backtrace.log', 'w'))
{
   $bt = debug_backtrace();
   fwrite($fp, 'debug='.print_r($bt, true));
   fclose($fp);
}

Une autre approche si vous le souhaitez rendu sur la page:

$bt = debug_backtrace();

echo "<pre>" . print_r($bt, true) . "</pre>\n";

Voici un exemple:

[4] => Array (
   [file] => sites/all/modules/contrib/path_breadcrumbs/path_breadcrumbs.module
   [line] => 135
   [function] => ctools_access
   [args] => Array (
      [0] => Array (
         [plugins] => Array (
            [0] => Array (
                [name] => entity_field_value:node:feed_item:field_news_category

 

Dans un fichier txt

En utilisant une fonction comme celle-ci, visualisé à l’aide de gedit sous Linux ou de Notepad ++ sous Windows, où il vous sera automatiquement demandé de recharger. Lorsque vous souhaitez consulter un nouveau journal, sélectionnez-tout, supprimez-le et enregistrez-le.

function ecrireUnJournal($variable) {
  if ($fp = fopen('debogage.txt', 'a'))
  {
      fwrite($fp, "$variable\r\n");
      fclose($fp);
  }
}

 

Débogage de thème: (Drupal 7)

$conf['theme_debug'] = TRUE;

cela rend les informations de theme_hook en source html, (inspecter le code source en html pour voir) déconseillé en mode de production.

 

Débogage de thème: (Drupal 8)

créer le fichier sites/default/services.yml à partir de sites/default/default.services.yml

activer twig debugging (une fois activé les astuces apparait dans le code source html).

    # Not recommended in production environments
    # @default false
    debug: true

    # Twig auto-reload:
    # Not recommended in production environments
    # @default null
    auto_reload: true

Twig variables:

 

Générer du code automatiquement pour les extensions (plugins)   https://hechoendrupal.gitbooks.io/drupal-console/content/en/commands/available-commands.html

drush gen #afficher la liste d'extensions (plugin types) que le console drupal peut générer automatiquement.
drush gen --help #support
drush gen -h #support
#NOTE , drush --version >9.0 seulement 

Regex:

https://regex101.com/