Dettagli tecnici
Questo argomento illustra i dettagli tecnici dell’implementazione della pipeline in Commerce 2.2 e versioni successive. I miglioramenti possono essere suddivisi nelle seguenti aree:
In questo argomento viene inoltre illustrato il flusso di lavoro consigliato per la distribuzione della pipeline e vengono forniti alcuni esempi per comprendere il funzionamento.
Prima di iniziare, controlla i Prerequisiti per i sistemi di sviluppo, generazione e produzione.
Gestione della configurazione
Per consentire la sincronizzazione e la gestione della configurazione dei sistemi di sviluppo e produzione, utilizzare il seguente schema di sostituzione.
Come illustrato nel diagramma, i valori di configurazione vengono utilizzati nell'ordine seguente:
- Le variabili di ambiente, se esistenti, sostituiscono tutti gli altri valori.
- Dai file di configurazione condivisi
env.php
econfig.php
. I valori inenv.php
sostituiscono i valori inconfig.php
. - Da valori memorizzati nel database.
- Se in una di queste origini non esiste alcun valore, viene utilizzato il valore predefinito o NULL.
Gestire la configurazione condivisa
La configurazione condivisa è archiviata in app/etc/config.php
, che deve trovarsi nel controllo del codice sorgente.
Imposta la configurazione condivisa nell'Admin nel tuo sistema di sviluppo (o Adobe Commerce sull'infrastruttura cloud integrazione) e scrivi la configurazione in config.php
utilizzando il comando magento app:config:dump
.
Gestire la configurazione specifica del sistema
La configurazione specifica del sistema è archiviata in app/etc/env.php
, che dovrebbe non essere nel controllo del codice sorgente.
Imposta la configurazione specifica del sistema nell'Admin nel tuo sistema di sviluppo (o Adobe Commerce sull'integrazione dell'infrastruttura cloud) e scrivi la configurazione su env.php
utilizzando il comando magento app:config:dump
.
Questo comando scrive anche le impostazioni sensibili in env.php
.
Gestire la configurazione sensibile
La configurazione sensibile è archiviata anche in app/etc/env.php
.
Puoi gestire la configurazione sensibile in uno dei seguenti modi:
- Variabili di ambiente
- Salva la configurazione sensibile in
env.php
nel sistema di produzione utilizzando il comandomagento config:set:sensitive
Impostazioni di configurazione bloccate in Amministrazione
Tutte le impostazioni di configurazione in config.php
o env.php
sono bloccate nell'amministratore, ovvero non possono essere modificate nell'amministratore.
Utilizzare il comando magento config:set
o magento config:set --lock
per modificare le impostazioni nei file config.php
o env.php
.
L’Amministratore Commerce
Durante la modalità di produzione, l’amministratore mostra il seguente comportamento:
-
Non è possibile abilitare o disabilitare i tipi di cache nell’amministratore
-
Le impostazioni per gli sviluppatori non sono disponibili (Archivi > Impostazioni > Configurazione > Avanzate > Sviluppatore), tra cui:
-
Minimizzare CSS, JavaScript e HTML
-
Unisci CSS e JavaScript
-
Compilazione LESS lato server o lato client
-
Traduzioni in linea
-
Come descritto in precedenza, qualsiasi impostazione di configurazione in
config.php
oenv.php
è bloccata e non può essere modificata nell'amministratore. -
È possibile modificare le impostazioni locali dell'amministratore solo nelle lingue utilizzate dai temi distribuiti
Nella figura seguente viene illustrato un esempio dell'elenco Impostazioni account > Impostazioni internazionali interfaccia dell'amministratore che mostra solo due impostazioni internazionali distribuite:
-
-
Non è possibile modificare le configurazioni locali per alcun ambito utilizzando Admin.
È consigliabile apportare queste modifiche prima di passare alla modalità di produzione.
È comunque possibile configurare le impostazioni locali utilizzando le variabili di ambiente o il comando CLI
config:set
con il percorsogeneral/locale/code
.
Installare e rimuovere cron
Nella versione 2.2, per la prima volta, ti aiutiamo a configurare il processo cron fornendo il comando magento cron:install
. Questo comando imposta una scheda cronologica come utente che esegue il comando.
È inoltre possibile rimuovere la scheda cronologica utilizzando il comando magento cron:remove
.
Flusso di lavoro di distribuzione della pipeline consigliato
Il diagramma seguente mostra come si consiglia di utilizzare la distribuzione della pipeline per gestire la configurazione.
Sistema di sviluppo
Nel sistema di sviluppo, è possibile apportare modifiche alla configurazione nell'amministratore e generare la configurazione condivisa, app/etc/config.php
e la configurazione specifica del sistema, app/etc/env.php
. Controlla il codice Commerce e la configurazione condivisa nel controllo del codice sorgente e inviala al server di build.
Devi anche installare le estensioni e personalizzare il codice Commerce sul sistema di sviluppo.
Sul sistema di sviluppo:
-
Imposta la configurazione in Admin.
-
Utilizzare il comando
magento app:config:dump
per scrivere la configurazione nel file system.app/etc/config.php
è la configurazione condivisa, che contiene tutte le impostazioni eccetto impostazioni sensibili e specifiche del sistema. Il file deve trovarsi nel controllo del codice sorgente.app/etc/env.php
è la configurazione specifica del sistema, che contiene impostazioni univoche per un sistema specifico (ad esempio, nomi host e numeri di porta). Il file non deve essere incluso nel controllo del codice sorgente.
-
Aggiungere il codice modificato e la configurazione condivisa al controllo del codice sorgente.
-
Per rimuovere il codice php generato e i file di risorse statiche durante lo sviluppo, esegui i seguenti comandi:
code language-bash rm -r var/view_preprocessed/* rm -r pub/static/*/* rm -r generated/*/*
Dopo aver eseguito i comandi per cancellare le risorse, Commerce genera i file di lavoro.
.htacces
nella cartella generated
o pub
può causare problemi.Genera sistema
Il sistema di build compila il codice e genera file di visualizzazione statica per i temi registrati in Commerce. Non è necessaria una connessione al database di Commerce, ma solo la base di codice Commerce.
Sul sistema di build:
- Estrarre il file di configurazione condiviso dal controllo del codice sorgente.
- Utilizzare il comando
magento setup:di:compile
per compilare il codice. - Utilizzare il comando
magento setup:static-content:deploy -f
per aggiornare i file di visualizzazione dei file statici. - Controllare gli aggiornamenti nel controllo del codice sorgente.
Sistema di produzione
Nel sistema di produzione (ovvero nel tuo archivio live), puoi estrarre le risorse generate e gli aggiornamenti del codice dal controllo del codice sorgente e impostare impostazioni di configurazione specifiche del sistema e sensibili utilizzando la riga di comando o le variabili di ambiente.
Sul sistema di produzione:
- Avvia la modalità di manutenzione.
- Recupera gli aggiornamenti del codice e della configurazione dal controllo del codice sorgente.
- Se si utilizza Adobe Commerce, arrestare i processi di lavoro in coda.
- Utilizzare il comando
magento app:config:import
per importare le modifiche alla configurazione nel sistema di produzione. - Se sono stati installati componenti che hanno modificato lo schema del database, eseguire
magento setup:upgrade --keep-generated
per aggiornare lo schema e i dati del database, mantenendo i file statici generati. - Per impostare le impostazioni specifiche del sistema, utilizzare il comando
magento config:set
o le variabili di ambiente. - Per impostare le impostazioni sensibili, utilizzare il comando
magento config:sensitive:set
o le variabili di ambiente. - Pulire (indicato anche come svuotare) la cache.
- Termina modalità di manutenzione.
Comandi di gestione della configurazione
Per facilitare la gestione della configurazione, vengono forniti i seguenti comandi:
-
magento app:config:dump
per scrivere le impostazioni di configurazione amministratore inconfig.php
eenv.php
(tranne le impostazioni sensibili) -
magento config:set
per impostare i valori delle impostazioni specifiche del sistema nel sistema di produzione.Utilizzare l'opzione facoltativa
--lock
per bloccare l'opzione in Admin (ovvero, rendere l'impostazione non modificabile). Se un'impostazione è già bloccata, utilizzare l'opzione--lock
per modificarla. -
magento config:sensitive:set
per impostare i valori delle impostazioni sensibili nel sistema di produzione. -
magento app:config:import
per importare le modifiche di configurazione daconfig.php
eenv.php
nel sistema di produzione.
Esempi di gestione della configurazione
In questa sezione vengono illustrati alcuni esempi di gestione della configurazione che consentono di visualizzare le modifiche apportate a config.php
e env.php
.
Modificare le impostazioni internazionali predefinite
In questa sezione viene illustrata la modifica apportata a config.php
quando si modifica l'unità di misura predefinita utilizzando l'Admin (Stores > Settings > Configuration > General > General > Locale Options).
Dopo aver apportato la modifica in Admin, eseguire bin/magento app:config:dump
per scrivere il valore in config.php
. Il valore viene scritto nell'array general
in locale
, come mostra il seguente snippet da config.php
:
'general' =>
array (
'locale' =>
array (
'code' => 'en_US',
'timezone' => 'America/Chicago',
'weight_unit' => 'kgs'
)
)
Modificare diverse impostazioni di configurazione
Questa sezione descrive come apportare le seguenti modifiche alla configurazione:
- Aggiunta di una visualizzazione sito Web, archivio e archivio (Archivi > Impostazioni > Tutti gli archivi)
- Modifica del dominio e-mail predefinito (Archivi > Impostazioni > Configurazione > Clienti > Configurazione cliente)
- Impostazione del nome utente e della password API di PayPal (Archivi > Impostazioni > Configurazione > Vendite > Metodi di pagamento > PayPal > Impostazioni PayPal richieste)
Dopo aver apportato la modifica in Admin, esegui bin/magento app:config:dump
sul tuo sistema di sviluppo. Questa volta non tutte le modifiche sono state scritte in config.php
. In effetti, solo le visualizzazioni del sito Web, dello store e dello store vengono scritte nel file come mostrato nei frammenti seguenti.
config.php
config.php
contiene:
- Modifiche alla visualizzazione del sito Web, dello store e dello store.
- Impostazioni del motore di ricerca non specifiche del sistema
- Impostazioni PayPal non sensibili
- Commenti che ti informano sulle impostazioni sensibili omesse da
config.php
Array websites
:
'new' =>
array (
'website_id' => '2',
'code' => 'new',
'name' => 'New website',
'sort_order' => '0',
'default_group_id' => '2',
'is_default' => '0',
),
Array groups
:
2 =>
array (
'group_id' => '2',
'website_id' => '2',
'code' => 'newstore',
'name' => 'New store',
'root_category_id' => '2',
'default_store_id' => '2',
),
Array stores
:
'newview' =>
array (
'store_id' => '2',
'code' => 'newview',
'website_id' => '2',
'group_id' => '2',
'name' => 'New store view',
'sort_order' => '0',
'is_active' => '1',
),
Array 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
L'impostazione di configurazione predefinita specifica per il sistema del dominio e-mail è scritta in app/etc/env.php
.
Le impostazioni PayPal non vengono scritte in nessun file perché il comando bin/magento app:config:dump
non scrive impostazioni sensibili. È necessario impostare le impostazioni PayPal sul sistema di produzione utilizzando i seguenti comandi:
bin/magento config:sensitive:set paypal/wpp/api_username <username>
bin/magento config:sensitive:set paypal/wpp/api_password <password>