Quer começar a usar o Better WP-Config o mais rápido possível ?
define()
s todas as constantes exigidas pelo núcleo do WordPress para você.php
, um arquivo .env
ou um arquivo JSON
.db
, debug
, error
, salts
, etc.define()
vs. ini_set()
, etc.define()
necessárias para qualquer plugin ou temaprivate
de hosts da web gerenciados para armazenar configuraçõesABSPATH
(por exemplo, WP core) como web root, /wp
ou qualquer outro subdiretórioWP_CONTENT_DIR
como /wp-content
, /app
ou qualquer outro subdiretóriolocal
, test
, stage
, prod
, etc.HTTP_HOST
por expressão regularsecrets
)index.php
ou wp-config.php
$_ENV
, $_SERVER
ou getenv()
private
wp_config()->print_config();
(Observação: o seguinte não será verdade até que concluamos este problema. Até então, consulte nosso início rápido)
Basta criar um arquivo chamado /wp-content/config/config.php
e adicionar a configuração do seu site usando o formato aqui:
<?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'
),
);
Você também precisará substituir /index.php
e /wp-config.php
do seu site por alternativas muito simples que você pode encontrar aqui e aqui, respectivamente.
No entanto, antes de fazer suposições erradas:
Better WP-Config pode carregar arquivos de configuração de ../config
, /private/config
ou onde você quiser.
Se você gosta de separar configuração e código, pode definir seu file_format
como 'env'
.
Pode parecer simples – o que foi intencional para facilitar o início – mas o Better WP-Config foi projetado para lidar com requisitos de configuração altamente complexos. Depois de começar e encontrar casos de uso mais complexos, como vários ambientes e implantação automatizada, você verá como o Better WP-Config realmente é flexível e poderoso.
Você pode perguntar qual problema o Better WP-Config está tentando resolver. Você pode perguntar: “Por que precisamos de uma solução de configuração WordPress melhor?” Bem, precisamos de um porque descobrimos que muitos casos de uso além do trivial exigem uma solução de configuração melhor. Continue lendo:
WordPress é um ótimo CMS, mas ignora as necessidades dos desenvolvedores WordPress que gostariam de usar um fluxo de trabalho mais profissional, como ambientes test
/ stage
/ live
. A configuração padrão do WordPress foi projetada para gerenciar a configuração de um ambiente; se quiser gerenciar mais, você terá que implementar sua própria solução de configuração multiambiente.
O WordPress permite que você armazene a configuração em wp-config.php
na raiz da web ou em um nível de diretório acima. Embora você possa armazenar sua configuração em outro arquivo e então require()
em wp-config.php
(que é o que o Better WP-Config faz), hackear uma solução personalizada significa que você também precisará documentá-la e mantê-la, assumindo que você quero depender disso no futuro.
E se você se der ao trabalho de desenvolver e documentar uma solução como o Better WP-Config, você basicamente terá investido tempo (e dinheiro?) na duplicação daquilo que você poderia ter acabado de usar sem qualquer esforço de desenvolvimento e documentação.
Para piorar a situação, cada host gerenciado por WordPress – como Pantheon e WPEngine – cada um lança suas próprias soluções de configuração arbitrariamente incompatíveis para oferecer suporte a sua própria oferta gerenciada de WordPress.
Veja como vários webhosts gerenciados pelo WordPress tratam e/ou limitam você com wp-config.php
.
Se você estiver familiarizado com a forma como outros sites WordPress gerenciados lidam com wp-config.php
considere enviar uma solicitação pull com documentação sobre como eles lidam com seu wp-config.php
para ajudar a nós e a outros.
Qualquer pessoa que já trabalhou com WordPress sabe como configurar as credenciais do banco de dados do WordPress através das constantes PHP DB_HOST
, DB_NAME
, DB_USER
e DB_PASSWORD
. Isso parece simples e fácil quando você começa a trabalhar com o WordPress, mas com o tempo você percebe que isso torna a configuração muito inflexível porque você não pode cascata de configurações dos padrões do WordPress, dos padrões do seu projeto, para as especificidades do seu ambiente e, finalmente, para a configuração do seu host.
Better WPConfig não elimina o uso de constantes imutáveis, mas espera até que todas as configurações em cascata sejam mescladas antes de define()
executar essas constantes. (Mas este pode ser o primeiro passo para erradicar o uso das constantes define()
d do PHP no WordPress. É uma ideia, porque as constantes imutáveis do PHP tornam o teste automatizado da funcionalidade do WordPress muito mais difícil do que o necessário.)
Infelizmente, não há uma maneira simples de encontrar todas as opções disponíveis para o núcleo do WordPress, uma vez que elas estão implícitas em toda a base de código do WordPress e em vários locais documentados online. Melhor WP-Config (principalmente) resolve este problema com "wp_config()->print_config()
, análogo a phpinfo()
Muitas opções de configuração não têm padrões, como a configuração do banco de dados, que aumenta o aprendizado necessário para o desenvolvimento local. Better WP-Config fornece opções padrão para todas as opções "conhecidas" .
Por si só, você poderia criar um conjunto de convenções viáveis para poder controlar a versão de sua configuração para todos os diferentes ambientes que seu projeto precisa - nós fizemos - mas então você percebe que cada host lida com isso de maneira diferente e tente como puder , você sente que é impossível encontrar uma solução consistente que sua equipe possa usar e que funcione com os diferentes hosts da web que você e seus clientes escolheram.
Para entender melhor por que isso é difícil, leia sobre como Pantheon e WPEngine lidam com seus arquivos wp-config.php
, respectivamente.
Por último, os problemas relacionados ao fluxo de trabalho profissional e aos casos de uso de controle de versão, agravados pelas escolhas incompatíveis feitas por hosts gerenciados do WordPress, simplesmente por causa da falta de padronização do wp-config.php
apenas tornam a implantação mais difícil do que o necessário. Isso se aplica se você estiver usando upload de SFTP, implantação de Git como o Pantheon ou implantação por meio de um provedor de integração contínua como o CircleCI.
A boa notícia é que o Better WP-Config resolve (quase) todos esses problemas, hoje! Comece .
Estamos muito felizes com o desempenho do Better WP-Config . No entanto, as coisas poderiam ser:
Ótimo se os garfos ClassicPress e CalmPress adotassem o Better WP-Config para configuração,
Melhor ainda se os webhosts gerenciados por WordPress padronizassem o Better WP-Config para seus serviços, ou
O melhor de tudo se o próprio WordPress usasse o Better WP-Config para novas instalações, ao mesmo tempo que mantinha suporte contínuo para sites existentes que já usam wp-config.php
como tem feito há anos.
GPLv2