Buenas Prácticas en Drupal

3 Flares 3 Flares ×

A la hora de crear un sitio nuevo en Drupal conviene echar un vistazo al conjunto de buenas prácticas recomendadas para este CMS. Algunos consejos iniciales son:

  • Planificar tu sitio. Aunque Drupal proporciona un buen conjunto de herramientas para construir tu sitio sigue siendo necesario hacer una buena planificación de este. Una buena representación esquemática de tu página (wireframes) y una planificación adecuada pueden evitar un montón de problemas y malentendidos posteriores.
  • Planificar para el futuro. Es recomendable revisar tu sitio y evaluar si es necesario hacer una adaptación cada vez que sale una versión nueva de Drupal. Esto no quiere decir, para nada, que tengamos que actualizar nuestro portal sino que en algún momento tal vez nos convenga.
  • Participar en la comunidad. Involucrarse en la comunidad de Drupal te ayudará a seguir las nuevas tendencias de desarrollo, te permitirá ayudar a otros, y resolver problemas propios.
  • Hacer copias de seguridad. Es muy importante hacer copias de seguridad tanto de tu base de datos como de los archivos de tu sitio web Drupal. Del mismo modo, es igual de importante comprobar que las copias de seguridad se realizan de forma correcta.
  • Utilizar fragmentos de código PHP con moderación y cuidado. Drupal ofrece un gran potencial y flexibilidad al utilizar código PHP en bloques. Si existe algún error de sintaxis en un fragmento de código PHP copiado, cuando Drupal trate de evaluarlo fallará y el sitio web no funcionará. O peor aún, si se introduce una porción de código PHP de un usuario no autorizado puedes exponer todo tu sitio web a los ataques de los hackers. Solamente debes proporcionar permisos para utilizar el formato PHP de tu sitio a los desarrolladores de confianza de tu sitio, de otro modo podrías permitir que un intruso hiciera casi cualquier cosa con todo tu portal. Al crear un bloque que utilice el formato de entrada PHP, puedes probar ese bloque en una página temporal para comprobar que hacer caer a tu sitio web. Al utilizar el formato de entrada de PHP escribe el código y utiliza la vista previa para depurar tu código. Una vez tengas claro que tu código funciona como deseas, copia y pega el código en el bloque.

A continuación se exponen algunas buenas prácticas de nivel intermedio, es decir, aquellas en las que no hace falta realizar tareas que requieran programar:

Hacer copia de seguridad de tu base de datos y archivos

Las copias de seguridad tanto de la base de datos como de los archivos son esenciales. La siguiente lista de herramientas ofrece diferentes posibilidades para tratar con esta tarea:

Backup & Migrate

El módulo Backup & Migrate facilita las tareas de llevar a cabo recuperaciones de emergencia y de realizar migraciones del sitio. Puedes configurarlo para que realice copias de seguridad automáticas. Incluso permite crear una copia de seguridad manual antes de realizar cambios complejos en el sitio, de modo que se disponga de un punto de restauración al que volver si algo va mal.

Drush

Drush (Drupal Shell) es una utilidad de línea de comandos. De modo que para poder hacer uso de Drush es necesario disponer, por un lado de acceso SSH a la consola de tu servidor y, por otro lado de permisos para instalar y configurar Drush.

La utilidad Drash ofrece las dos siguientes herramientas:

  • archive-dump. Comando que crea un archivo con todos los archivos de tu servidor Drupal y su base de datos.
  • sql-dump. Comando que utiliza, a su vez, la herramienta mysqldump para hacer una copia de seguridad de tu base de datos Drupal. Ejemplo para hacer una copia de seguridad de la base de datos añadiendo la fecha al nombre del archivo de bakup:
drush sql-dump --result-file=PATH/TO/BACKUP/DIR/DBNAME_`date +"%m_%d_%Y-%H:%M"`.sql
Interfaz de línea de comandos

Si tu servicio de hosting te proporciona acceso a la línea de comandos, puedes realizar las copias de seguridad de tu base de datos con el comando mysqldump.

Nunca hackear el núcleo

Una frase muy escuchada en la comunidad de Drupal es “Never hack core!”. Esta es una de las buenas prácticas más importantes de Drupal.

Al referirnos al núcleo nos referimos a todos los archivos que pertenecen a la instalación original de Drupal. Es decir, todos los archivos a excepción de los que se encuentran en la carpeta sites. Puedes añadir perfiles de instalación al directorio profiles pero no deberías modificar ninguno de los archivos existentes en ese directorio.

¿Por qué no debes modificar los archivos del núcleo?

Por muy fácil que te resulte hacer cambios en los archivos del núcleo de Drupal evita hacerlo. Hay que recordar que Drupal se distribuye como código abierto, por lo que no es fácil resistir la tentación de meter las manos en la fuente.

Uno de los principales motivos es que tras realizar cambios en el núcleo ser hará casi imposible aplicar actualizaciones de Drupal con normalidad. Y algunas de ellas pueden ser importantes, como por ejemplo actualizaciones para corregir fallos de Seguridad. También, aunque no sea tu intención, cabe la posibilidad de dejes tu sitio vulnerable a exploits.

El núcleo de Drupal ha sido diseñado para ser modular, de modo que no debería existir ninguna razón para modificarlo. Si necesitas una característica que no está presente y que no puede llevarse a cabo fuera del núcleo, estaría bien que ofrecieses tu cambio como un parche, creando un asunto y comunicando a la comunidad de Drupal qué es lo que pretendes conseguir. A continuación, tu parche será probado y se decidirá si vale la pena que forme parte del núcleo de Drupal.

 

Evitar hacer hardcoding

Puede resultar difícil para nuevos usuarios de Drupal, conocidos como Drupallers, encontrar información de por qué insertar datos directamente en el código fuente (hardcoding) suele ser una mala idea.

Aquí se muestran algunos ejemplos en los que realizar cambios en el código fuente puede ocasionar problemas:

  • Estás desarrollando un tema. Por ejemplo, añades una consulta SQL personalizada para recuperar y mostrar información sobre el número de items que un usuario tiene. Ahora quieres utilizar este tema en otra instalación de Drupal. ¿Qué pasa si la otra instalación tiene un conjunto diferente de nombres de tabla, o si está utilizando un módulo diferente para almacenar información de usuario y que precisa una secuencia diferente de combinaciones? En este caso, tu consulta personalizada resultará inútil.
  • Estás diseñando una función hecha a mano para recuperar y mostrar información de usuario. Al final resulta que es una operación muy pesada para el procesador y tu cliente decide almacenar en caché sus resultados. ¿Qué sucede si no anticipaste la necesidad de trabajar con los mecanismos existentes para almacenamiento en caché que tiene Drupal?
  • Otra persona empieza a trabajar con tu código. Si no has documentado muy bien todo lo que has hecho, o incluso si lo has hecho, pero no puedes facilitar todo tu trabajo a los nuevos colaboradores, estos pueden enfrentarse a problemas con Drupal por desconocer todas las modificaciones que has llevado a cabo en el código fuente.

De todos modos, a veces, como desarrollador de Drupal puedes necesitar retocar el código de vez en cuando. Un ejemplo sería mostrar un tema relacionado con una festividad, como por ejemplo Halloween, en un ID de un nodo específico que solo vas a utilizar una vez al año. Vamos, que utilizar un módulo para agregar una única opción para elegir el tema no sería muy deseable si sólo se va a utilizar de vez en cuando, por lo que sería viable programar esta lógica en el código fuente.

 

Configurar el sitio utilizando las Características

En Drupal 7, la configuración y los ajustes del sitio son exportables utilizando el módulo de terceros CTOOLS. Las características de este módulo ofrecen un método bien conocido para empaquetar estos exportables en una nueva función de módulo descargable. Drush CTools Export Bonus ofrece una forma más ligera para exportar la configuración del sitio.

Las características de los módulos facilitan el trabajo con la configuración de los ajustes proporcionando medios cómodos para empaquetar, exportar e importar ajustes para muchos de los módulos de Drupal más utilizados. El uso de las características cambia el paradigma de desarrollo de sitios de pequeños ajustes aquí y allí por la habilitación de características.

Las principales ventajas son:

  • Los recién llegados a Drupal pueden desplegar rápidamente un blog, una galería de imágenes y un montón de otras características, al mismo tiempo que pueden seguir echando un vistazo a los ajustes con letra pequeña.
  • Los desarrolladores pueden reutilizar fácilmente los ajustes en algunos de los módulo más utilizados, incluyendo CCK (y ImageCache), Views, Panels, Context, y más.
  • Los desarrolladores pueden distribuir fácilmente sus configuraciones para los clientes y sitios en desarrollo.

Asegurarse de que el sitio es seguro

La guía de seguridad de Drupal tiene una sección dedicada a la seguridad de tu sitio con una lista útil de elementos sobre los que trabajar.

El módulo Security Review proporciona una revisión automática de posibles problemas de seguridad.

Por su parte, Drupal tiene un Equipo de Seguridad que trabaja para abordar los problemas de seguridad del núcleo de Drupal y de los módulos de terceros.

Utilizar sitios de prueba

Existen muchos programas que te pueden ayudar a configurar fácilmente un sistema de pruebas local. Deberías establecer uno para juguetear con tu sitio y probar las copias de seguridad y restauraciones de tu sitio en producción. Configura un sitio de pruebas utilizando una copia de tus datos en tiempo real, esto te permitirá comprobar si todo se guarda como desearías.

Algunos consejos:

  • Nunca hagas desarrollo o pruebas en tu sitio web en producción. Drupal es fácil y rápido de instalar, por lo que se aconseja probar siempre en un sitio de pruebas en primer lugar.
  • Comprueba que tus copias de seguridad funcionan y que sabes cómo hacer una restauración de tu sitio. El sistema de pruebas puede ser tu ordenador personal, por ejemplo. No querrás descubrir por el camino más largo que se te olvidó un archivo o que no sabes cómo restaurar tu sistema si se viene abajo.
  • Prueba el procedimiento de actualización de tu sitio antes de arriesgarte a hacerlo en tu  sitio en producción y documenta todos los pasos que des para poder repetir el proceso. Puedes realizar pruebas con Simpletest.

Poner tu sitio en marcha

Una vez que tengas tu instalación de Drupal configurada de la forma que quieres, hay algunas consideraciones finales antes de liberarla al mundo.

Es muy posible que hayas puesto Drupal en algún subdirectorio de tu sitio web mientras lo tenías en fase de pruebas. De modo que cuando decides que tu sitio hecho con Drupal sea lo que se vea cuando alguien acceda a tu página, tienes dos opciones:

Mover  Drupal

Mover todo el contenido de tu carpeta de Drupal a la carpeta principal del servidor. Esto no debería plantear ningún problema.

 

Redireccionar tu servidor

Redireccionar tu servidor para que apunte al directorio que contiene la instalación de Drupal. Con Apache necesitas añadir al archivo .htaccess como sigue

RewriteEngine on
#
# stuff to let through (ignore)
#RewriteCond %{REQUEST_URI} "/folder1/" [OR]
#RewriteCond %{REQUEST_URI} "/folder2/"
RewriteRule (.*) drupal/$1 [L]

También necesitas modificar el archivo settings.php de tu sitio. Por defecto, este se encuentra en sites/default/settings.php. Descomenta o cambia la línea que establece la directiva $base_url, y establece en esta la URL que quieres que tus navegadores visualicen como base para tu sitio:

$base_url = 'http://www.example.com';

Excluir rutas de Drupal

En el caso de que Drupal esté en el directorio principal, esto es lo que necesitas hacer:

  1. En el archivo .htaccess de tu servidor web, encuentra la sección marcada con el comentario ‘# Various rewrite rules.’
  2. Debajo escribe ‘RewriteEngine on’, pero antes de cualquier otra regla añade las siguientes líneas:
RewriteRule /folder - [L]     # a subfolder Drupal should ignore
RewriteRule /file.html - [L] # a file in root Drupal should ignore

Herramientas de accesibilidad y buenas prácticas para site builders (constructores de sitio)

En primer lugar, considera la lectura de Drupal Accessibility Statement. A continuación, aquí hay algunas cosas que puedes hacer para hacer que tu sitio de Drupal sea más accesible:

  • Empieza con la Lista de comprobación de Accesibilidad.
  • Selecciona buenos temas o crea los tuyos propios.
  • Elige módulos de terceros accesibles.
  • Identifica problemas de accesibilidad, comunícalos y envía parches, prueba parches y/o solicita parches.
  • Forma a los creadores de contenidos de tu sitio y ofréceles buenas herramientas de creación.
  • Valida y Prueba los contenidos.
  • Aplica soluciones que otros han desarrollado.
  • Asegúrate de que la diferencia en color no es la única forma de transmitir información significativa.
  • Al seleccionar esquemas de color, asegúrate de que hay suficiente contraste entre el texto o imágenes significativas y el fondo para que personas con visibilidad reducida puedan ver el texto y las imágenes claramente.

Evitar demasiados módulos

Siempre es bueno pensar si vale la pena instalar un nuevo módulo, porque si hay demasiados módulos instalados estos pueden ralentizar tu sitio. Además, los módulos que tienen un mal mantenimiento y que contienen errores pueden resultar perjudiciales para la seguridad y la estabilidad de tu sitio.

Es importante investigar los módulos de terceros mejor mantenidos, como Views, Rules, Panels, y otros antes que instalar un gran números de módulos distintos en tu sitio. La funcionalidad de estos módulos a menudo puede mitigar la instalación de otros módulos menos conocidos en tu sitio Drupal.

3 Flares Twitter 0 Facebook 0 Google+ 2 Email -- LinkedIn 1 3 Flares ×
Tagged with: , ,
Posted in Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *

*

3 Flares Twitter 0 Facebook 0 Google+ 2 Email -- LinkedIn 1 3 Flares ×