Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan rangka kerja Hyperf untuk pengurusan konfigurasi

Cara menggunakan rangka kerja Hyperf untuk pengurusan konfigurasi

WBOY
WBOYasal
2023-10-28 10:07:481346semak imbas

Cara menggunakan rangka kerja Hyperf untuk pengurusan konfigurasi

Hyperf ialah rangka kerja PHP yang sangat baik. Ciri-ciri utamanya adalah pantas, fleksibel dan boleh diskalakan pada masa ini. Dalam proses membangunkan menggunakan rangka kerja Hyperf, kami sering menghadapi situasi yang memerlukan pengurusan konfigurasi. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Hyperf untuk pengurusan konfigurasi dan memberikan contoh kod khusus.

1. Lokasi fail konfigurasi
Apabila membangun menggunakan rangka kerja Hyperf, fail konfigurasi biasanya diletakkan dalam direktori konfigurasi, atau boleh dikonfigurasikan dalam fail .env. Rangka kerja Hyperf akan memuatkan fail konfigurasi secara automatik dalam direktori konfigurasi dan menyimpannya dalam bekas untuk kemudahan kami.

2. Format fail konfigurasi
Rangka kerja Hyperf menyokong berbilang format fail konfigurasi, termasuk fail PHP, fail JSON, fail Yaml, dsb. Antaranya, fail PHP adalah yang paling biasa digunakan. Kita boleh mentakrifkannya dengan mengembalikan tatasusunan, seperti yang ditunjukkan di bawah:

<?php
return [
     'key1' => 'value1',
     'key2' => 'value2',
     'key3' => [
         'sub_key1' => 'sub_value1',
         'sub_key2' => 'sub_value2',
     ],
];

Jika kita menggunakan fail format JSON, kita perlu menggunakan format yang serupa dengan yang berikut.

{
    "key1": "value1",
    "key2": "value2",
    "key3": {
        "sub_key1": "sub_value1",
        "sub_key2": "sub_value2"
    }
}

3 Pembacaan fail konfigurasi
Dalam rangka kerja Hyperf, kita boleh membaca maklumat konfigurasi dalam fail konfigurasi melalui komponen Config. Komponen Config boleh diperolehi melalui bekas Kodnya adalah seperti berikut:

<?php
use HyperfConfigConfig;

$config = make(Config::class);
$value = $config->get('key1');

Antaranya, komponen Config menyediakan get(), has(), set() dan kaedah lain untuk mendapatkan, menyemak dan menetapkan maklumat konfigurasi. Jika kita perlu mendapatkan maklumat sub-konfigurasi, kita boleh menggunakan "." sebagai pemisah, seperti yang ditunjukkan di bawah:

<?php
use HyperfConfigConfig;

$config = make(Config::class);
$value = $config->get('key3.sub_key1');

4. Konfigurasi dinamik
Dalam rangka kerja Hyperf, kita boleh mengubah suai maklumat konfigurasi melalui konfigurasi dinamik. Sebagai contoh, kami boleh mengubah suai kandungan fail konfigurasi secara dinamik dengan cara berikut:

<?php

$config = make(Config::class);
$config->set('key1', 'new_value1');

5. Memantau perubahan fail konfigurasi
Dalam rangka kerja Hyperf, kami juga boleh merealisasikan fungsi pengubahsuaian masa nyata maklumat konfigurasi dengan memantau konfigurasi perubahan fail. Kita boleh menghidupkan fungsi pemantauan dengan menetapkan pembolehubah tertentu dalam fail konfigurasi Kodnya adalah seperti berikut:

<?php
return [
    'config_loader' => [
        'enable_dotenv' => true,
        'use_standalone_process' => false,
        'ignore_annotations' => [],
        'ignore_consolidation' => [],
        'exclude' => [
            '.git',
            '.svn',
            'vendor',
            'runtime',
        ],
        'config_cache_enable' => true,
        'config_cache_file' => BASE_PATH . '/runtime/container/config.cache.php',
        'watch_files' => [
            BASE_PATH . '/config/autoload',
            BASE_PATH . '/.env',
            BASE_PATH . '/config/autoload/*-config.php',
        ],
    ],
];

Antaranya, tatasusunan watch_files mewakili senarai fail yang perlu dipantau. Kami boleh memantau perubahan fail dengan cara berikut:

<?php
use HyperfEventContractListenerInterface;
use HyperfFrameworkEventOnWorkerStart;

/**
 * @Listener
 */
class ConfigFileListener implements ListenerInterface
{
    /**
     * {@inheritdoc}
     */
    public function listen(): array
    {
        return [
            OnWorkerStart::class,
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function process(object $event)
    {
        $container = ApplicationContext::getContainer();
        $watcher = $container->get(ConfigFileWatcher::class);
        $watcher->watch();
    }
}

Akhir sekali, kami boleh mendapatkan maklumat konfigurasi dengan cara berikut:

<?php
use HyperfConfigConfig;

$config = make(Config::class);
$config->set('key1', 'new_value1');

$dispatcher = ApplicationContext::getContainer()->get(EventDispatcherInterface::class);
$dispatcher->dispatch(new OnConfigurationChanged($config));

$value = $config->get('key1');

6. Kesimpulan
Melalui penjelasan artikel ini, kami telah mempelajari cara menggunakan rangka kerja Hyperf untuk konfigurasi pengurusan , dan menguasai kaedah konfigurasi dinamik dan memantau perubahan fail konfigurasi. Jika anda ingin mengetahui lebih lanjut tentang ciri dan penggunaan rangka kerja Hyperf, adalah disyorkan untuk merujuk kepada dokumentasi rasmi, atau menggunakan komponen dan sambungan yang disediakan secara rasmi oleh Hyperf untuk pembangunan berkaitan.

Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk pengurusan konfigurasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn