Detalhes técnicos
Este tópico discute detalhes de implementação técnica sobre a implantação de pipeline no Commerce 2.2 e versões posteriores. As melhorias podem ser divididas nas seguintes áreas:
Este tópico também discute o fluxo de trabalho recomendado para implantação do pipeline e fornece alguns exemplos para ajudá-lo a entender como ele funciona.
Antes de começar, leia os Pré-requisitos para os sistemas de desenvolvimento, compilação e produção.
Gerenciamento de configuração
Para permitir que você sincronize e mantenha a configuração dos sistemas de desenvolvimento e produção, use o esquema de substituição a seguir.
Como mostra o diagrama, os valores de configuração são usados na seguinte ordem:
- As variáveis de ambiente, se existirem, substituirão todos os outros valores.
- Dos arquivos de configuração compartilhados
env.php
econfig.php
. Valores emenv.php
substituem valores emconfig.php
. - De valores armazenados no banco de dados.
- Se não houver valor em nenhuma dessas origens, o valor default ou NULL será usado.
Gerenciar a configuração compartilhada
A configuração compartilhada está armazenada em app/etc/config.php
, que deve estar no controle do código-fonte.
Defina a configuração compartilhada no Administrador em seu sistema de desenvolvimento (ou Adobe Commerce na infraestrutura de nuvem integração) e grave a configuração em config.php
usando o comando magento app:config:dump
.
Gerenciar a configuração específica do sistema
A configuração específica do sistema é armazenada em app/etc/env.php
, que deve não estar no controle de origem.
Defina a configuração específica do sistema no Admin em seu sistema de desenvolvimento (ou Adobe Commerce na integração da infraestrutura em nuvem) e grave a configuração em env.php
usando o comando magento app:config:dump
.
Este comando também grava configurações confidenciais em env.php
.
Gerenciar a configuração confidencial
A configuração confidencial também é armazenada em app/etc/env.php
.
Você pode gerenciar a configuração confidencial de qualquer uma das seguintes maneiras:
- Variáveis de ambiente
- Salve a configuração confidencial em
env.php
em seu sistema de produção usando o comandomagento config:set:sensitive
Configurações bloqueadas no Admin
Todas as definições de configuração em config.php
ou env.php
estão bloqueadas no Administrador; ou seja, essas definições não podem ser alteradas no Administrador.
Use o comando magento config:set
ou magento config:set --lock
para alterar as configurações nos arquivos config.php
ou env.php
.
O administrador do Commerce
O Administrador exibe o seguinte comportamento enquanto está no modo de produção:
-
Não é possível ativar ou desativar os tipos de cache no Administrador
-
As configurações do desenvolvedor não estão disponíveis (Lojas > Configurações > Configuração > Avançado > Desenvolvedor), incluindo:
-
Reduza CSS, JavaScript e HTML
-
Mesclar CSS e JavaScript
-
Compilação LESS do lado do servidor ou do lado do cliente
-
Traduções integradas
-
Conforme discutido anteriormente, qualquer definição de configuração em
config.php
ouenv.php
está bloqueada e não pode ser editada no Administrador. -
Você pode alterar a localidade do administrador somente para idiomas usados por temas implantados
A figura a seguir mostra um exemplo da lista Configuração da Conta > Localidade da Interface no Administrador mostrando apenas duas localidades implantadas:
-
-
Não é possível alterar as configurações de local de nenhum escopo usando o Administrador.
Recomendamos fazer essas alterações antes de alternar para o modo de Produção.
Você ainda pode configurar a localidade usando variáveis de ambiente ou o comando da CLI
config:set
com o caminhogeneral/locale/code
.
Instalar e remover o cron
Na versão 2.2, pela primeira vez, ajudamos você a configurar seu trabalho cron fornecendo o comando magento cron:install
. Este comando configura um crontab como o usuário que executa o comando.
Além disso, você pode remover o crontab usando o comando magento cron:remove
.
Fluxo de trabalho de implantação de pipeline recomendado
O diagrama a seguir mostra como recomendamos usar a implantação de pipeline para gerenciar a configuração.
Sistema de desenvolvimento
No sistema de desenvolvimento, você faz alterações de configuração no Administrador e gera a configuração compartilhada, app/etc/config.php
, e a configuração específica do sistema, app/etc/env.php
. Verifique o código Commerce e a configuração compartilhada no controle do código-fonte e envie-o para o servidor de compilação.
Você também deve instalar extensões e personalizar o código do Commerce no sistema de desenvolvimento.
Em seu sistema de desenvolvimento:
-
Defina a configuração no Admin.
-
Use o comando
magento app:config:dump
para gravar a configuração no sistema de arquivos.app/etc/config.php
é a configuração compartilhada, que contém todas as configurações exceto as configurações específicas do sistema e as confidenciais. Este arquivo deve estar no controle do código-fonte.app/etc/env.php
é a configuração específica do sistema, que contém configurações exclusivas de um sistema específico (por exemplo, nomes de host e números de porta). Este arquivo deve não estar no controle de origem.
-
Adicione o código modificado e a configuração compartilhada ao controle do código-fonte.
-
Para remover o código php gerado e os arquivos de ativos estáticos enquanto em desenvolvimento, execute os seguintes comandos:
code language-bash rm -r var/view_preprocessed/* rm -r pub/static/*/* rm -r generated/*/*
Após executar os comandos para limpar os ativos, o Commerce gera arquivos de trabalho.
.htacces
s na pasta generated
ou pub
pode causar problemas.Criar sistema
O sistema de compilação compila o código e gera arquivos de visualização estáticos para temas registrados no Commerce. Ela não precisa de uma conexão com o banco de dados do Commerce; ela precisa apenas da base de código do Commerce.
No sistema de compilação:
- Extrair o arquivo de configuração compartilhado do controle do código-fonte.
- Use o comando
magento setup:di:compile
para compilar o código. - Use o comando
magento setup:static-content:deploy -f
para atualizar arquivos de exibição de arquivo estáticos. - Verifique as atualizações no controle de origem.
Sistema de produção
No sistema de produção (ou seja, na loja em tempo real), você extrai ativos gerados e atualizações de código do controle de origem e define configurações confidenciais e específicas do sistema usando a linha de comando ou variáveis de ambiente.
Em seu sistema de produção:
- Iniciar modo de manutenção.
- Obter atualizações de código e configuração do controle do código-fonte.
- Se você usar o Adobe Commerce, interrompa os trabalhadores em fila.
- Use o comando
magento app:config:import
para importar alterações de configuração no sistema de produção. - Se você instalou componentes que alteraram o esquema do banco de dados, execute
magento setup:upgrade --keep-generated
para atualizar o esquema do banco de dados e os dados, preservando os arquivos estáticos gerados. - Para definir configurações específicas do sistema, use o comando
magento config:set
ou as variáveis de ambiente. - Para definir configurações confidenciais, use o comando
magento config:sensitive:set
ou as variáveis de ambiente. - Limpar (também conhecido como liberar) o cache.
- Encerrar modo de manutenção.
Comandos de gerenciamento de configuração
Fornecemos os seguintes comandos para ajudá-lo a gerenciar a configuração:
-
magento app:config:dump
para gravar as definições de configuração do Administrador emconfig.php
eenv.php
(exceto para definições confidenciais) -
magento config:set
para definir os valores de configurações específicas do sistema no sistema de produção.Use a opção
--lock
opcional para bloquear a opção no Administrador (ou seja, tornar a configuração não editável). Se uma configuração já estiver bloqueada, use a opção--lock
para alterá-la. -
magento config:sensitive:set
para definir os valores de configurações confidenciais no sistema de produção. -
magento app:config:import
para importar alterações de configuração deconfig.php
eenv.php
para o sistema de produção.
Exemplos de gerenciamento de configuração
Esta seção mostra exemplos de gerenciamento da configuração para que você possa ver como as alterações são feitas em config.php
e env.php
.
Alterar o local padrão
Esta seção mostra a alteração feita em config.php
quando você altera a unidade de peso padrão usando Admin (Lojas > Configurações > Configuração > Geral > Geral > Opções de Localidade).
Depois de fazer a alteração no Administrador, execute bin/magento app:config:dump
para gravar o valor em config.php
. O valor é gravado na matriz general
em locale
como mostra o seguinte trecho de config.php
:
'general' =>
array (
'locale' =>
array (
'code' => 'en_US',
'timezone' => 'America/Chicago',
'weight_unit' => 'kgs'
)
)
Alterar várias definições de configuração
Esta seção discute as seguintes alterações de configuração:
- Adicionando um modo de exibição de site, loja e loja (Lojas > Configurações > Todas as Lojas)
- Alterando o domínio de email padrão (Lojas > Configurações > Configuração > Clientes > Configuração do Cliente)
- Definindo o Nome de Usuário da API do PayPal e a senha da API (Lojas > Configurações > Configuração > Vendas > Métodos de Pagamento > PayPal > Configurações do PayPal necessárias)
Depois de fazer a alteração no Administrador, execute o bin/magento app:config:dump
no sistema de desenvolvimento. Desta vez, nem todas as suas alterações são gravadas em config.php
; na verdade, somente o site, armazenamento e exibição de armazenamento são gravados nesse arquivo, conforme mostrado nos seguintes trechos.
config.php
config.php
contém:
- Alterações na exibição do site, da loja e da loja.
- Configurações do mecanismo de pesquisa não específicas do sistema
- Configurações não confidenciais do PayPal
- Comentários que informam sobre configurações confidenciais que foram omitidas de
config.php
Matriz websites
:
'new' =>
array (
'website_id' => '2',
'code' => 'new',
'name' => 'New website',
'sort_order' => '0',
'default_group_id' => '2',
'is_default' => '0',
),
Matriz groups
:
2 =>
array (
'group_id' => '2',
'website_id' => '2',
'code' => 'newstore',
'name' => 'New store',
'root_category_id' => '2',
'default_store_id' => '2',
),
Matriz stores
:
'newview' =>
array (
'store_id' => '2',
'code' => 'newview',
'website_id' => '2',
'group_id' => '2',
'name' => 'New store view',
'sort_order' => '0',
'is_active' => '1',
),
Matriz payment
:
'payment' =>
array (
'paypal_express' =>
array (
'active' => '0',
'in_context' => '0',
'title' => 'PayPal Express Checkout',
'sort_order' => NULL,
'payment_action' => 'Authorization',
'visible_on_product' => '1',
'visible_on_cart' => '1',
'allowspecific' => '0',
'verify_peer' => '1',
'line_items_enabled' => '1',
'transfer_shipping_options' => '0',
'solution_type' => 'Mark',
'require_billing_address' => '0',
'allow_ba_signup' => 'never',
'skip_order_review_step' => '1',
),
env.php
A definição de configuração específica do sistema de domínio de email padrão é gravada em app/etc/env.php
.
As configurações do PayPal não são gravadas em nenhum arquivo porque o comando bin/magento app:config:dump
não grava configurações confidenciais. Você deve definir as configurações do PayPal no sistema de produção usando os seguintes comandos:
bin/magento config:sensitive:set paypal/wpp/api_username <username>
bin/magento config:sensitive:set paypal/wpp/api_password <password>