it-swarm-es.com

¿Cómo hago para poner los archivos PHP independientes en Drupal 6?

Quiero agregar una clase PHP extra genial, ¿dónde lo pondría en Drupal, cómo me aseguro absolutamente de que el código no presenta un riesgo de seguridad? ¿Debería convertirlo en un ¿módulo?

4
palbakulich

Su mejor opción sería incluirlo a través de un módulo personalizado, e incluirlo sería tan fácil como usar module_load_include () .

En cuanto a la seguridad, aconsejaría echar un vistazo a la documentación de Drupal estándares de codificación , que desafortunadamente está etiquetada como D7 y no pude encontrar la antigua D6 versión, pero en general, seguir los estándares ayudará a prevenir algunos problemas de seguridad.

El código no está escrito exclusivamente para Drupal puede que tampoco funcione específicamente de forma inmediata, es posible que deba escribir un puente para que el código se integre mejor, de lo contrario, es posible que deba volver a escribirlo por completo .

4
Decipher

Aquí se hacen dos preguntas:

  • ¿Debo convertir la clase PHP en un módulo?
  • ¿Cómo puedo estar seguro de que no contiene problemas de seguridad?

Si está distribuyendo su propia clase PHP, o si está proporcionando la clase a sus propios clientes, lo que haría es hacer que la clase sea parte de un módulo. Si la clase es parte de un módulo, entonces es más fácil para los módulos de terceros (o incluso para otro módulo que desarrolló como parte del código personalizado que proporciona a un cliente) verificar si la clase está disponible; también hace posible evitar que otros módulos usen que = PHP clase sin la necesidad de borrar el archivo, si los otros módulos verifican si el módulo está disponible en lugar de verificar si la clase está disponible (lo que significa usar module_exists()).
Con Drupal 7 es aún más fácil crear un objeto de una clase definida a partir de módulos de terceros; el módulo ni siquiera necesita cargar primero el archivo que contiene la clase, si el módulo que contiene dicho archivo lo enumera en el archivo . info , usando la directiva files[]: esa operación se realiza automáticamente desde Drupal, a través del registro que implementa.

Poner código en un módulo no lo hace automáticamente seguro; para crear un código seguro, debe seguir lo que se informa en Escribiendo código seguro . Seguir los estándares de codificación de Drupal le permite codificar que otros usuarios pueden entender más fácilmente (lo que significa que pueden encontrar más fácilmente problemas de seguridad u otros problemas presentes en su código), o código que no crea conflictos con los módulos existentes; los estándares de codificación no informan cómo escribir código seguro, excepto en algunos puntos particulares, como cuando sugieren cómo evitar inyecciones de SQL.

Para notar que los estándares de codificación no se han actualizado para Drupal 7; de hecho, la parte sobre el uso de marcadores de posición SQL todavía se refiere al código Drupal 6.

1
kiamlaluno

Sí, puede hacerlo fácilmente creando un módulo personalizado y luego colocando la clase dentro de él. De todos modos, es probable que necesite algún código adhesivo para conectar la funcionalidad de esa clase con Drupal, por ejemplo, con ganchos.

Tienes que tener en cuenta algunas cosas:

  • Drupal es GPL. Todo el código que es llamado directamente por Drupal (en contraste con XML-RPC o REST Service)) debe ser compatible con GPL o GPL. Si mantiene esa clase para usted, no es un gran problema (sigue siendo una infracción de licencia pero nadie puede verificarlo;)) pero si desea distribuirlo, entonces se vuelve importante.

  • Si planea lanzar ese módulo en Do, no debe incluir esa clase usted mismo y, en su lugar, debe indicar a los usuarios que lo descarguen ellos mismos, incluso si la clase es GPL compatible. Ver http://drupal.org/project/libraries

0
Berdir