it-swarm-es.com

¿Mejores prácticas para nombres de variables de módulos personalizados?

Me he acostumbrado a hacer paneles de configuración bastante robustos para mis módulos ahora, y encuentro que los nombres y la administración de las variables son bastante dolor.

Tengo variables como mymodule_section_subvar_varname_type_context y no solo pierdo la pista del orden de los elementos en los nombres de mis variables, sino que siento que tener un nombre de variable tan largo es un defecto de diseño.

He estado considerando usar una matriz serializada en una variable mymodule_section_settings junto con un conjunto de funciones que facilitan el mantenimiento de esa matriz, pero me encantaría recibir información sobre las mejores prácticas (si las hay) que se han establecido fuera de los prefijos y/o ejemplos de módulos en los que confiamos y en qué están haciendo para grandes conjuntos de variables.

¡Gracias!

8
electblake

Es posible usar una variable Drupal para contener una matriz; eso es lo que Drupal los módulos centrales también hacen (ver book_type_is_allowed () =).

Es posible usar una sola variable Drupal para contener diferentes configuraciones utilizadas por un módulo en una matriz. Con la forma #tree todavía es posible usar el atributo system_settings_form () para guardar la matriz en una variable Drupal sin escribir ningún código adicional. Serializar la deserialización del código es automáticamente hecho por las Drupal funciones centrales que manejan Drupal variables (ver el código de variable_set () ).

La pregunta es entonces: ¿cuándo debería usarse una sola variable Drupal para contener diferentes configuraciones? Yo usaría una sola variable para configuraciones que son usadas por una función, o un grupo de funciones; si el La matriz contiene valores utilizados por (por ejemplo) 10 funciones diferentes, pero esas funciones acceden a un solo valor (o un par de valores) de esa matriz, entonces no usaría una sola variable persistente para la configuración.

7
kiamlaluno

Si un conjunto de configuraciones está relacionado, entonces ponerlos en una matriz tiene sentido. Por ejemplo, si está haciendo several variable_get es secuencialmente. Le brinda cierta flexibilidad, además de ser potencialmente un poco más rápido.

Sin embargo, esto dificultará que otros programas editen su configuración manualmente a través de algo como drush vset o robustgarm. En estos casos, los nombres de variables largos pueden resultar útiles.

2
Jeremy French