sql >> Base de Datos >  >> RDS >> Mysql

¿La mejor manera de almacenar la configuración de una aplicación PHP?

Para un sitio único, pequeño y simple, simplemente pondría la configuración en un archivo PHP. Mantenlo simple. PHP probablemente no analiza nada más rápido de lo que analiza PHP. Si usa APC, el código de bytes compilado incluso se almacena en caché, aunque el código de bytes se vuelve a ejecutar para cada solicitud. Para un archivo de configuración pequeño, la ejecución de este código de bytes debería tomar muy poco tiempo; para un archivo muy grande, puede tardar un poco más.

Para sitios de alto tráfico con configuraciones grandes, almacenar en caché los datos de configuración en APC (por ejemplo, como una sola matriz) es una buena idea; como mínimo, se ahorra la sobrecarga de realmente ejecutar las declaraciones en su archivo config.php. En particular, Facebook hace esto. Cuando está atendiendo muchas solicitudes por segundo, presionar el disco para leer un archivo de configuración (usando parse_ini_file, un analizador XML, etc.) en cada solicitud está fuera de discusión.

Para mi proyecto actual, alojamos muchos sitios, cada uno con su propia configuración. Cada sitio tenía una base de datos y un archivo de configuración; sin embargo, asegurarse de usar siempre el archivo de configuración correcto con la base de datos correcta puede convertirse en un dolor de cabeza. Además, los cambios requerirían cambiar cosas en dos lugares:la base de datos y la configuración. Olvidar uno u otro siempre causaba problemas, y sucedía con demasiada frecuencia.

Movimos la configuración a la base de datos, de modo que posiblemente no pueda separar una base de datos de su configuración correcta, y cualquier cambio de código solo requiere actualizar la base de datos. Los datos de la tabla de configuración también se almacenan en caché agresivamente en APC, por lo que rara vez los consultamos.

Entonces, para recapitular:

  1. Sitio pequeño :simplemente use un archivo config.php
  2. Sitio muy grande :caché en APC
  3. Múltiples sitios :almacene la configuración en la base de datos para reducir los gastos generales de administración; caché en APC para reducir las visitas a la base de datos