Technische details
Dit onderwerp bespreekt technische implementatiedetails over pijpleidingsplaatsing in Commerce 2.2 en later. De verbeteringen kunnen in de volgende gebieden worden verdeeld:
Dit onderwerp bespreekt ook het geadviseerde werkschemavoor pijpleidingsplaatsing en verstrekt sommige voorbeelden om u te helpen begrijpen hoe het werkt.
Alvorens u begonnen wordt, herzie de Vereisten voor uw ontwikkeling, bouwt, en productiesystemen.
Configuratiebeheer
Om u toe te laten om de configuratie van uw ontwikkeling en productiesystemen te synchroniseren en te handhaven, gebruik de volgende met voeten getreden regeling.
Zoals het diagram toont, worden de configuratiewaarden gebruikt in de volgende orde:
- Omgevingsvariabelen, indien aanwezig, overschrijven alle andere waarden.
- Uit de gedeelde configuratiebestanden
env.php
enconfig.php
. Waarden inenv.php
overschrijven waarden inconfig.php
. - Uit waarden die zijn opgeslagen in de database.
- Als geen waarde in om het even welke die bronnen bestaat, wordt de standaardwaarde of ONGELDIG gebruikt.
De gedeelde configuratie beheren
De gedeelde configuratie wordt opgeslagen in app/etc/config.php
, die in broncontrole zou moeten zijn.
Plaats de gedeelde configuratie in Admin in uw ontwikkeling (of Adobe Commerce op de integratie van de wolkeninfrastructuur __) systeem en schrijf de configuratie aan config.php
gebruikend het magento app:config:dump
bevel.
De systeemspecifieke configuratie beheren
De systeem-specifieke configuratie wordt opgeslagen in app/etc/env.php
, die niet in broncontrole zou moeten zijn.
Plaats de systeem-specifieke configuratie in Admin in uw ontwikkelings (of Adobe Commerce op de integratie van de wolkeninfrastructuur) systeem en schrijf de configuratie aan env.php
gebruikend magento app:config:dump
bevel.
Met deze opdracht worden ook gevoelige instellingen naar env.php
geschreven.
De vertrouwelijke configuratie beheren
De gevoelige configuratie wordt ook opgeslagen in app/etc/env.php
.
U kunt de gevoelige configuratie op om het even welke volgende manieren beheren:
- Omgevingsvariabelen
- Sparen de gevoelige configuratie in
env.php
op uw productiesysteem gebruikend hetmagento config:set:sensitive
bevel
Configuratie-instellingen vergrendeld in de beheerder
Configuratie-instellingen in config.php
of env.php
zijn vergrendeld in de beheerfunctie. Deze instellingen kunnen dus niet worden gewijzigd in de beheerdersinstelling.
Gebruik de opdracht magento config:set
of magento config:set --lock
om de instellingen in de config.php
- of env.php
-bestanden te wijzigen.
Commerce Admin
Admin vertoont het volgende gedrag terwijl in productiemodus:
-
U kunt cavetypen niet in- of uitschakelen in Beheer
-
De montages van de ontwikkelaar zijn niet beschikbaar (Slaat > Montages > Configuratie > Geavanceerd > Ontwikkelaar), die omvatten:
-
CSS, JavaScript en HTML miniaturen
-
CSS en JavaScript samenvoegen
-
LESS-compilatie op server- of clientzijde
-
Inline-vertalingen
-
Zoals eerder is besproken, is elke configuratie-instelling in
config.php
ofenv.php
vergrendeld en kan deze niet worden bewerkt in de beheerfunctie. -
U kunt de beheerlandinstelling alleen wijzigen in talen die worden gebruikt door geïmplementeerde thema's
Het volgende cijfer toont een voorbeeld van de Plaatsende Rekening > Lijst van de Plaats van de Interface in Admin die slechts twee opgestelde scènes tonen:
-
-
U kunt de configuratie van de landinstelling voor geen enkel bereik wijzigen met de beheerfunctie.
Wij adviseren makend deze veranderingen alvorens op de wijze van de Productie over te schakelen.
U kunt de landinstelling nog steeds configureren met behulp van omgevingsvariabelen of de opdracht
config:set
CLI met behulp van het padgeneral/locale/code
.
Uitsnede installeren en verwijderen
In versie 2.2 voor het eerst, helpen wij u opstelling uw kroonbaan door het magento cron:install
bevelte verstrekken. Met deze opdracht stelt u een tab in als de gebruiker die de opdracht uitvoert.
U kunt ook de tab verwijderen met de opdracht magento cron:remove
.
Aanbevolen workflow voor distributie van pijpleidingen
Het volgende diagram toont hoe wij u aanbevelen pijpleidingsplaatsing te gebruiken om de configuratie te beheren.
Ontwikkelingssysteem
Op uw ontwikkelingssysteem, brengt u configuratieveranderingen in Admin aan en produceert de gedeelde configuratie, app/etc/config.php
en de systeem-specifieke configuratie, app/etc/env.php
. Controleer de code van Commerce en de gedeelde configuratie in broncontrole en duw het aan de bouwstijlserver.
U moet ook extensies installeren en de Commerce-code op het ontwikkelingssysteem aanpassen.
Op uw ontwikkelingssysteem:
-
Stel de configuratie in de beheerfunctie in.
-
Gebruik de opdracht
magento app:config:dump
om de configuratie naar het bestandssysteem te schrijven.app/etc/config.php
is de gedeelde configuratie, die alle montages behalve gevoelige en systeem-specifieke montages bevat. Dit bestand moet zich in de broncontrole bevinden.app/etc/env.php
is de systeemspecifieke configuratie, die montages bevat die aan een bepaald systeem (bijvoorbeeld, hostnames en havenaantallen) uniek zijn. Dit dossier zou __ niet in broncontrole moeten zijn.
-
Voeg uw gewijzigde code en de gedeelde configuratie aan broncontrole toe.
-
Voer de volgende opdrachten uit om gegenereerde php-code en statische elementbestanden tijdens de ontwikkeling te verwijderen:
code language-bash rm -r var/view_preprocessed/* rm -r pub/static/*/* rm -r generated/*/*
Nadat Commerce de opdrachten heeft uitgevoerd om de elementen te wissen, worden werkbestanden gegenereerd.
.htacces
-bestand verwijdert in de map generated
of pub
, kunnen er problemen optreden.Systeem bouwen
Het bouwstijlsysteem compileert code en produceert statische meningsdossiers voor thema's die in Commerce worden geregistreerd. Er is geen verbinding met de Commerce-database nodig, maar alleen met de Commerce-codebase.
Op uw bouwstijlsysteem:
- Trek het gedeelde configuratiedossier van broncontrole.
- Gebruik de opdracht
magento setup:di:compile
om code te compileren. - Gebruik de opdracht
magento setup:static-content:deploy -f
om statische bestanden in de weergave bij te werken. - Controleer de updates in broncontrole.
Productiesysteem
Op uw productiesysteem (namelijk uw levende opslag) trekt u geproduceerde activa en codeupdates van broncontrole en plaatst systeem-specifieke en gevoelige configuratiemontages gebruikend de bevellijn of milieuvariabelen.
Op uw productiesysteem:
- Start de onderhoudsmodus.
- Trek code en configuratietoepassingen van broncontrole.
- Als u Adobe Commerce gebruikt, stop wachtrijarbeiders.
- Gebruik de opdracht
magento app:config:import
om configuratiewijzigingen in het productiesysteem te importeren. - Als u componenten hebt geïnstalleerd die het databaseschema hebben gewijzigd, voert u
magento setup:upgrade --keep-generated
uit om het databaseschema en de gegevens bij te werken, waarbij gegenereerde statische bestanden behouden blijven. - Gebruik de opdracht
magento config:set
of omgevingsvariabelen om systeemspecifieke instellingen in te stellen. - Gebruik de opdracht
magento config:sensitive:set
of omgevingsvariabelen om gevoelige instellingen in te stellen. - Schoon (die ook als wordt bedoeld flush) het geheime voorgeheugen.
- Eindonderhoudsmodus.
Opdrachten voor configuratiebeheer
Wij verstrekken de volgende bevelen om u te helpen de configuratie beheren:
-
magento app:config:dump
om beheerdersconfiguratie-instellingen naarconfig.php
enenv.php
te schrijven (behalve voor gevoelige instellingen) -
magento config:set
om de waarden van systeemspecifieke instellingen in te stellen op het productiesysteem.Gebruik de optionele optie
--lock
om de optie in Beheer te vergrendelen (de instelling kan dus niet worden bewerkt). Als een instelling al is vergrendeld, wijzigt u de instelling met de optie--lock
. -
magento config:sensitive:set
om de waarden van gevoelige instellingen in te stellen op het productiesysteem. -
magento app:config:import
om configuratiewijzigingen vanconfig.php
enenv.php
in het productiesysteem te importeren.
Configuratiebeheervoorbeelden
In deze sectie worden voorbeelden weergegeven van het beheer van de configuratie, zodat u kunt zien hoe wijzigingen worden aangebracht in config.php
en env.php
.
De standaardlandinstelling wijzigen
Deze sectie toont de verandering die aan config.php
wordt aangebracht wanneer u de eenheid van het standaardgewicht gebruikend Admin (wordt aangebracht Slaat > Montages > Configuratie > Algemeen > Algemeen > de Opties van de Landinstelling).
Nadat u de wijziging in Beheer hebt aangebracht, voert u bin/magento app:config:dump
uit om de waarde naar config.php
te schrijven. De waarde wordt naar de array general
onder locale
geschreven, zoals in het volgende fragment uit config.php
wordt getoond:
'general' =>
array (
'locale' =>
array (
'code' => 'en_US',
'timezone' => 'America/Chicago',
'weight_unit' => 'kgs'
)
)
Verschillende configuratie-instellingen wijzigen
Deze sectie bespreekt het aanbrengen van de volgende configuratieveranderingen:
- Het toevoegen van een website, opslag, en opslagmening (Slaat > Montages > Alle Sporen) op
- Het veranderen van het standaard e-maildomein (Slaat > Montages > Configuratie > Klanten > Configuratie van de Klant) op
- Het plaatsen van de Gebruikersnaam en het API wachtwoord van PayPal API (opslag > Montages > Configuratie > Verkoop > de Methoden van de Betaling > PayPal > Vereiste Montages PayPal)
Nadat u de wijziging in Admin hebt aangebracht, voert u bin/magento app:config:dump
uit op uw ontwikkelingssysteem. Dit keer worden niet al uw wijzigingen naar config.php
geschreven. In feite worden alleen de website-, opslag- en winkelweergave naar dat bestand geschreven zoals in de volgende fragmenten wordt getoond.
config.php
config.php
bevat:
- Wijzigingen in de website-, opslag- en winkelweergave.
- Niet-systeemspecifieke zoekmachineinstellingen
- Niet-gevoelige PayPal-instellingen
- Opmerkingen die u informeren over gevoelige instellingen die zijn weggelaten uit
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
De standaardinstelling voor de systeemspecifieke configuratie van het e-maildomein wordt geschreven naar app/etc/env.php
.
De PayPal-instellingen worden naar geen van beide bestanden geschreven, omdat de opdracht bin/magento app:config:dump
geen gevoelige instellingen schrijft. U moet de PayPal-instellingen op het productiesysteem instellen met de volgende opdrachten:
bin/magento config:sensitive:set paypal/wpp/api_username <username>
bin/magento config:sensitive:set paypal/wpp/api_password <password>