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 vengono inoltre illustrate le workflow consigliato per la distribuzione della pipeline e fornisce alcuni esempi per comprendere come funziona.

Prima di iniziare, controlla 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.

Determinazione dei valori delle variabili di configurazione

Come illustrato nel diagramma, i valori di configurazione vengono utilizzati nell'ordine seguente:

  1. Le variabili di ambiente, se esistenti, sostituiscono tutti gli altri valori.
  2. Dai file di configurazione condivisi env.php e config.php. Valori in env.php sostituire i valori in config.php.
  3. Da valori memorizzati nel database.
  4. 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’amministratore nel tuo sviluppo (o in Adobe Commerce nell’infrastruttura cloud) integrazione) e scrivere la configurazione in config.php utilizzando magento app:config:dump comando.

Gestire la configurazione specifica del sistema

La configurazione specifica del sistema è memorizzata 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 in env.php utilizzando magento app:config:dump comando.

Questo comando scrive anche le impostazioni sensibili in env.php.

Gestire la configurazione sensibile

La configurazione sensibile viene memorizzata anche in app/etc/env.php.

Puoi gestire la configurazione sensibile in uno dei seguenti modi:

Impostazioni di configurazione bloccate in Amministrazione

Qualsiasi impostazione di configurazione in config.php o env.php sono bloccati nell’amministratore, ovvero non possono essere modificati nell’amministratore.
Utilizza il magento config:set o magento config:set --lock per modificare le impostazioni in config.php o env.php file.

L’amministratore di 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 (Negozi > 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 discusso in precedenza, qualsiasi impostazione di configurazione in config.php o env.php è bloccato e non può essere modificato in Admin.

    • È possibile modificare le impostazioni locali dell'amministratore solo nelle lingue utilizzate dai temi distribuiti

      Nella figura seguente viene illustrato un esempio di Impostazione account > Impostazioni internazionali interfaccia nell’elenco Admin (Amministratore) vengono visualizzate solo due impostazioni internazionali distribuite:

      È possibile modificare le impostazioni locali dellamministratore solo in impostazioni locali 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 config:set Comando CLI con il percorso general/locale/code.

Installare e rimuovere cron

Nella versione 2.2, per la prima volta, ti aiutiamo a impostare il tuo lavoro cron fornendo il magento cron:install comando. Questo comando imposta una scheda cronologica come utente che esegue il comando.

È inoltre possibile rimuovere la scheda cronologica utilizzando magento cron:remove comando.

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.

Flusso di lavoro di distribuzione della pipeline consigliato

Sistema di sviluppo

Nel sistema di sviluppo, apporti modifiche alla configurazione nell’Amministratore e generi 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:

  1. Imposta la configurazione in Admin.

  2. Utilizza il magento app:config:dump comando 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 particolare sistema (ad esempio, nomi host e numeri di porta). Questo file dovrebbe non essere nel controllo del codice sorgente.
  3. Aggiungere il codice modificato e la configurazione condivisa al controllo del codice sorgente.

  4. 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.

WARNING
Fai attenzione con l’approccio di cui sopra. Eliminazione di .htaccess file in generated o pub potrebbero 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 Commerce, ma solo la base di codice Commerce.

Sul sistema di build:

  1. Estrarre il file di configurazione condiviso dal controllo del codice sorgente.
  2. Utilizza il magento setup:di:compile per compilare il codice.
  3. Utilizza il magento setup:static-content:deploy -f comando per aggiornare i file statici di visualizzazione file.
  4. 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:

  1. Avvia la modalità di manutenzione.
  2. Recupera gli aggiornamenti del codice e della configurazione dal controllo del codice sorgente.
  3. Se si utilizza Adobe Commerce, arrestare i processi di lavoro in coda.
  4. Utilizza il magento app:config:import comando per importare le modifiche di configurazione nel sistema di produzione.
  5. 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.
  6. Per impostare le impostazioni specifiche del sistema, utilizzare magento config:set o variabili di ambiente.
  7. Per impostare le impostazioni sensibili, utilizzare magento config:sensitive:set o variabili di ambiente.
  8. Pulito (denominato anche scaricamento) la cache.
  9. 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 in config.php e env.php (eccetto impostazioni sensibili)

  • magento config:set per impostare i valori delle impostazioni specifiche del sistema sul sistema di produzione.

    Utilizzare l'opzione --lock per bloccare l’opzione in Admin (rendendo cioè l’impostazione non modificabile). Se un'impostazione è già bloccata, utilizzare --lock per modificare l'impostazione.

  • magento config:sensitive:set per impostare i valori delle impostazioni sensibili sul sistema di produzione.

  • magento app:config:import per importare le modifiche alla configurazione da config.php e env.php al sistema di produzione.

Esempi di gestione della configurazione

Questa sezione mostra esempi di gestione della configurazione che consentono di vedere come vengono apportate le modifiche a config.php e env.php.

Modificare le impostazioni internazionali predefinite

Questa sezione mostra le modifiche apportate a config.php quando si modifica l'unità di misura dello spessore predefinita utilizzando l'opzione Admin (Negozi > Impostazioni > Configurazione > Generale > Generale > Opzioni internazionali).

Dopo aver apportato la modifica in Amministrazione, esegui bin/magento app:config:dump per scrivere il valore in config.php. Il valore viene scritto nel general array in locale come lo snippet seguente da config.php mostra:

'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 per siti Web, store e store (Negozi > Impostazioni > Tutti i Negozi)
  • Modifica del dominio e-mail predefinito (Negozi > Impostazioni > Configurazione > Clienti > Configurazione cliente)
  • Impostazione del nome utente e della password API PayPal (Negozi > Impostazioni > Configurazione > Vendite > Metodi di pagamento > PayPal > Impostazioni PayPal richieste)

Dopo aver apportato la modifica in Amministrazione, esegui bin/magento app:config:dump sul sistema di sviluppo. Questa volta non tutte le modifiche vengono scritte in config.php; infatti, solo la visualizzazione del sito Web, dello store e dello store vengono scritte in tale file come mostrato nei seguenti snippet.

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 informano l'utente sulle impostazioni sensibili omesse da config.php

websites array:

      'new' =>
      array (
        'website_id' => '2',
        'code' => 'new',
        'name' => 'New website',
        'sort_order' => '0',
        'default_group_id' => '2',
        'is_default' => '0',
      ),

groups array:

      2 =>
      array (
        'group_id' => '2',
        'website_id' => '2',
        'code' => 'newstore',
        'name' => 'New store',
        'root_category_id' => '2',
        'default_store_id' => '2',
      ),

stores array:

     'newview' =>
      array (
        'store_id' => '2',
        'code' => 'newview',
        'website_id' => '2',
        'group_id' => '2',
        'name' => 'New store view',
        'sort_order' => '0',
        'is_active' => '1',
      ),

payment array:

      '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 nessuno dei due file perché bin/magento app:config:dump Il comando non scrive le 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>
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c