Co oznaczają&,<<, * w tej bazie danych.plik yml?
Do tej pory używałem tylko bazy danych.yml z każdym parametrem wywołanym jawnie, w pliku poniżej używa pewnych znaków, których nie rozumiem. Co oznacza każda linia i symbol ( & ,*,
development: &default
adapter: postgresql
database: dev_development
test: &test
<<: *default
database: test_test
cucumber:
<<: *test
production:
<<: *default
database: test_production
5 answers
&
oznacza alias dla węzła (w twoim przykładzie &default
aliasuje węzeł deweloperski jako "domyślny"), a *
odwołuje się do aliasowanego węzła z nazwą"domyślny". <<:
wstawia zawartość tego węzła.
Pozwolę sobie zacytować YAML spec tutaj:
Powtarzające się węzły (obiekty) są najpierw identyfikowane przez kotwicę (oznaczoną ampersand -"&"), a następnie aliasowane (oznaczone gwiazdką -"*").
Więc części twojego przykład
test: &test
<<: *default
Faktycznie rozwiń do
test: &test
adapter: postgresql # from the "default" alias
database: dev_development # from the "default" alias
I jednocześnie udostępnić węzeł "test" pod aliasem "test". aby uzyskać więcej szczegółów, zajrzyj do YAML specification-2.2 Structures (lub jeśli potrzebujesz nawet Moar docs++: 3.2.2.2. Anchory i aliasy )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-15 15:18:04
Reprezentują odwołania do węzłów ( * ) i scalenia tablicy asocjacyjnej ( wikipedia
Wypróbuj Sam online .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-11 14:14:16
&default
oznacza, że oznaczasz ten zestaw atrybutów jakąś nazwą do późniejszego użycia
<<: *default
oznacza, że dołączasz wszystkie atrybuty z grupy oznaczone jako domyślne
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-11 14:13:06
Są sposobem na odniesienia do środowisk bez konieczności powtarzania tych samych ustawień w kółko(osuszanie).
test: &test
<<: *default
&test
tworzy odniesienie do tych konkretnych ustawień.
<<: *default
mówi Użyj domyślnych ustawień dla testu
cucumber:
<<: *test
Więc teraz wiemy, że dla cucumber
chcemy użyć ustawień z test
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-11 14:13:38
W prostych słowach pojęcie to przypomina z klasą bazową i pochodną.
W szablonie klasy bazowej, wymieniasz wszystkie wspólne szczegóły za pomocą'&', co oznacza, że może być użyty do rozszerzenia innej sekcji yaml, która potrzebuje tych pól. Teraz, gdy tworzysz kolejną sekcję, która jest supersetem wartości konfiguracyjnych tej struktury typu' base class', używasz znaku ' * ' wraz z kotwicą klasy bazowej (tzn. tej zaczynającej się od '&'). Używasz'
vsm:
stub_nsx_mgr: &MGR_CTRL_STUB
username: ADMIN
password: $DEFAULT_PASSWORD
deployment: ovf
build: $PR_BUILD
vmnics:
- network: $MANAGEMENT_NETWORK_0
vc: vc_0
ovf_options:
- --diskMode=$DISKMODE
- --deploymentOption=$DEPLOYMENT_OPTION
$MGR_0:
<<: *MGR_CTRL_STUB
ovf_path_regex: 'appliance.*\.ovf'
ovf_options:
- --diskMode=$DISKMODE
- --deploymentOption=$DEPLOYMENT_OPTION
$CTRL_0:
<<: *MGR_CTRL_STUB
ovf_options:
- --diskMode=$DISKMODE
- --allowExtraConfig
$CTRL_1:
*MGR_CTRL_STUB
Ale jeśli nie chcesz nadpisywać rozszerzonych pól, możesz pominąć '
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-07 16:29:38