¿Quieres empezar a utilizar Better WP-Config lo antes posible ?
define()
todas las constantes requeridas por el núcleo de WordPress para usted.php
, un archivo .env
o un archivo JSON
.db
, debug
, error
, salts
, etc.define()
vs. ini_set()
, etc.define()
necesarias para cualquier complemento o tema.private
de servidores web administrados para almacenar la configuraciónABSPATH
(por ejemplo, WP core) en raíz web, /wp
o cualquier otro subdirectorioWP_CONTENT_DIR
en /wp-content
, /app
o cualquier otro subdirectoriolocal
, test
, stage
, prod
, etc.HTTP_HOST
mediante expresión regularsecrets
)index.php
o wp-config.php
$_ENV
, $_SERVER
o getenv()
private
wp_config()->print_config();
(Nota: lo siguiente no será cierto hasta que completemos este problema. Hasta entonces, consulte nuestro inicio rápido)
Simplemente cree un archivo llamado /wp-content/config/config.php
y agregue la configuración de su sitio usando el formato aquí:
<?php
return array(
'db[name]' => 'example_db',
'db[user]' => 'example_user',
'db[pass]' => '1234567890abcdef',
'db[charset]' => 'utf8mb4_unicode_ci',
'db[collate]' => 'utf8mb4',
'db[host]' => 'localhost',
'db[table_prefix]' => 'wp_',
'defines' => array(
'CONSTANT_REQUIRED_BY_A_PLUGIN' => 'it's value'
),
);
También necesitarás reemplazar /index.php
y /wp-config.php
de tu sitio con alternativas muy simples que puedes encontrar aquí y aquí, respectivamente.
Sin embargo, antes de hacer suposiciones erróneas:
Better WP-Config puede cargar archivos de configuración desde ../config
, /private/config
o donde quiera.
Si eres fanático de separar la configuración y el código, puedes configurar tu file_format
en 'env'
.
Puede parecer simple, lo cual fue intencionado para facilitar el comienzo, pero Better WP-Config fue diseñado para manejar requisitos de configuración altamente complejos. Una vez que comience y encuentre casos de uso más complejos, como múltiples entornos e implementación automatizada, verá cuán flexible y poderoso es realmente Better WP-Config.
Quizás se pregunte qué problema está intentando resolver Better WP-Config. Quizás se pregunte: "¿Por qué necesitamos una mejor solución de configuración de WordPress?" Bueno, necesitamos uno porque hemos descubierto que demasiados casos de uso más allá de lo trivial exigen una mejor solución de configuración. Sigue leyendo:
WordPress es un gran CMS, pero ignora las necesidades de los desarrolladores de WordPress que desean utilizar un flujo de trabajo más profesional, como en entornos test
/ stage
/ live
. La configuración predeterminada de WordPress fue diseñada para administrar la configuración de un entorno; Si desea administrar más, debe implementar su propia solución de configuración multientorno.
WordPress le permite almacenar la configuración en wp-config.php
en la raíz web, o en un nivel de directorio superior. Aunque puede almacenar su configuración en otro archivo y luego require()
en wp-config.php
(que es lo que hace Better WP-Config ), crear una solución personalizada significa que también necesitará documentarla y mantenerla, suponiendo que Quiero depender de ello en el futuro.
Y si se toma la molestia de desarrollar y documentar una solución como Better WP-Config, básicamente habrá invertido tiempo (¿y dinero?) en duplicar lo que podría haber usado sin ningún esfuerzo de desarrollo y documentación.
Para colmo de males, cada host administrado de WordPress, como Pantheon y WPEngine, implementa sus propias soluciones de configuración arbitrariamente incompatibles para respaldar su propia oferta de WordPress administrado.
Así es como varios servidores web administrados por WordPress lo manejan y/o lo limitan con wp-config.php
.
Si está familiarizado con cómo otros sitios web administrados de WordPress manejan wp-config.php
considere enviar una solicitud de extracción con documentación sobre cómo manejan su wp-config.php
para ayudarnos a nosotros y a otros.
Cualquiera que haya trabajado con WordPress sabe cómo configurar las credenciales de la base de datos de WordPress a través de las constantes PHP DB_HOST
, DB_NAME
, DB_USER
y DB_PASSWORD
. Esto parece simple y fácil cuando comienzas a trabajar con WordPress, pero con el tiempo te das cuenta de que hace que la configuración sea muy inflexible porque no puedes conectar en cascada las configuraciones desde los valores predeterminados de WordPress, los valores predeterminados de tu proyecto, hasta los detalles específicos de tu entorno y, finalmente, hasta la configuración de tu servidor web.
Better WPConfig no elimina el uso de constantes inmutables, sino que espera hasta que toda la configuración en cascada se fusione antes de define()
estas constantes. (Pero este podría ser un primer paso para erradicar el uso de las constantes define()
d de PHP de WordPress. Es una idea, porque las constantes inmutables de PHP hacen que las pruebas automatizadas de la funcionalidad de WordPress sean mucho más difíciles de lo necesario).
Desafortunadamente, no existe una forma sencilla de encontrar todas las opciones disponibles para el núcleo de WordPress, ya que están implícitas en el código base de WordPress y en varias ubicaciones documentadas en línea. Mejor WP-Config (principalmente) resuelve este problema con "wp_config()->print_config()
, análogo a phpinfo()
Muchas opciones de configuración no tienen valores predeterminados, como la configuración de la base de datos que aumenta el aprendizaje necesario para el desarrollo local. Better WP-Config proporciona opciones predeterminadas para todas las opciones "conocidas" .
Por sí solo, podría crear un conjunto de convenciones viables para poder controlar la versión de su configuración para todos los diferentes entornos que necesita su proyecto (nosotros lo hicimos), pero luego se da cuenta de que cada proveedor de alojamiento web lo maneja de manera diferente y lo intenta como puede. , siente que es imposible encontrar una solución consistente que su equipo pueda usar y que funcione con los diferentes servidores web que usted y sus clientes han elegido.
Para comprender mejor por qué esto es difícil, asegúrese de leer acerca de cómo Pantheon y WPEngine manejan sus archivos wp-config.php
, respectivamente.
Por último, los problemas relacionados con el flujo de trabajo profesional y los casos de uso de control de versiones exacerbados por las elecciones incompatibles realizadas por los servidores web administrados de WordPress simplemente debido a la falta de estandarización de wp-config.php
simplemente hacen que la implementación sea más difícil de lo necesario. Esto se aplica ya sea que esté utilizando la carga SFTP, la implementación de Git como Pantheon o la implementación a través de un proveedor de integración continua como CircleCI.
¡La buena noticia es que Better WP-Config resuelve (casi) todos estos problemas hoy! Comience .
Estamos muy contentos con lo bien que funciona Better WP-Config . Sin embargo, las cosas podrían ser:
Genial si las bifurcaciones ClassicPress y CalmPress adoptaran Better WP-Config para la configuración,
Aún mejor si los servidores web administrados por WordPress estandarizaran Better WP-Config para sus servicios, o
Lo mejor de todo sería que WordPress usara Better WP-Config para nuevas instalaciones y, al mismo tiempo, mantuviera el soporte continuo para los sitios existentes que ya usan wp-config.php
como lo ha hecho durante años.
GPLv2