Pallier les problèmes de sauvegarde des formulaires importants

Lorsque l'on travaille sur un projet Drupal conséquent comportant de nombreuses de fonctionnalités et de nombreuses permissions à contribuer, on observe régulièrement un problème récurrent de sauvegarde sur des formulaires de grande taille. Régulièrement, les changement ne sont pas pris en compte en base de donnés. Des alésa récurrents sur les formulaires de droits /admin/user/permissions et /admin/people/permissions. Comment pallier à ce problème ? C'est le sujet de cet article...

En fait c'est la taille du formulaire qui pose problème, car la table des droits de Drupal est une multiplication de droits multipliés par les rôles d'un site web. L'origine du problème se trouve dans la limitation de la configuration par défaut de PHP sur certains serveurs.

Après avoir analyser la configuration générale avec phpinfo() nous pouvons trouver des valeurs des variables à modifier.

Il y a plusieurs manières de le faire, quelques-unes plus propres que les autres :09

  • settings.php.
    ini_set('pcre.backtrack_limit', 10000000); 
    ini_set('pcre.recursion_limit', 500000);
    settings.php
  • .htaccess. Peut-être pour configurer un seul sous-site en cas de multisite
    php_value max_input_vars 5000 
    php_value max_input_time 120
    .htaccess
  • php.ini.

Ma recommandation est d'utiliser la configuration du fichier général php.ini du serveur/vagrant/lamp et chercher les variables
max_input_time = 120
max_input_vars  = 5000

Dans ce cas là, il faut aussi redémarrer Apache.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *