PHP中一个高性能的配置管理扩展Yaconf详解
Yaconf 是一个高性能的配置管理扩展,是由PHP核心开发者鸟哥惠新宸发布的 PHP7 下的扩展应用。主要目标是简化读取项目配置文件, 使配置文件和项目代码分离,增强了配置文件的可读性和可维护性。
据 Yaconf 开发者惠新宸在其博客上说,这个项目是其在来微博以后, 第一个优化项目中顺手做的一个小工具, 本身叫做Weibo_Conf. 但是因为 Weibo_Conf 是属于 Weibo 扩展的, 里面还有一些其他功能是专门为 Weibo 定制的. 所以不适合直接开源.随着 PHP7 的发布, 新增了很多持久化类型的支持比如 IS_IMMUTABLE_ARRAY , 于是就在 PHP7 下重新开发了 Yaconf , 开源出来, 方便大家使用。
首先说说, 这个是干啥的:
我见过很多的项目中, 用 PHP 文件做配置的, 一个 config 目录下可能有十几个甚至数十个 .php 配置文件, 里面都是各种各样的 array , 还有甚者会把一些词典文件(比如中文/英文对照)也放到配置中去. 这就导致配置文件的解析耗费了很大的性能(诚然, 用了 opcache 能好点, 但是实际上还是有执行的过程).
除了 PHP 的, 还有用 json 的, yaml 的, 一个共同的特点就是这些配置的可读性比较差. 另外, 他们也都要 runtime 解析.
config 目录往往和代码在一起, 首先会有安全隐患(配置中往往有敏感信息), 其次如果配置和代码属于一个项目, 这就会导致配置的修改也要走代码上线的流程.
一些资源配置文件, 比如 mysql/memcache 的配置信息, 这些内容本来是应该对开发透明的, 运维直接负责即可. 但是放到了代码中就会导致, 运维如果要发起一些变更, 也要开发配合修改配置文件上线.
所以, Yaconf就是为了解决这些问题而生的一个工具.
它使用单独的一个配置目录(在 yaconf.directory 指定), 不和代码在一起.
它在 PHP 启动的时候, 处理所有的要处理的配置, 然后这些配置就会常驻内存, 随着 PHP 的生命周期存亡. 避免了每次请求的时候解析配置文件.
所有的配置内容都是 immutable 的, 这就可以借助于 Fork 的 COW , 降低内存占用, 并且在访问配置的时候, 几乎不需要任何的内存 Copy, 也不会有无谓的引用计数增减
最重要的, 配置目录和代码分离以后, 可以借助一个配置管理后台, 来实现配置的统一化管理.
它支持(对于非ZTS)配置变更重新加载, 也就是说配置如果有变化(建议更改配置一定使用 mv , 不要使用 cp ), 它会 reload, 不需要重启(检测的频率由 yaconf.check_delay 控制).
它支持丰富的配置类型, 包括
字符串, 数组, 分节, 分节继承
, 并且还可以在配置中直接写 PHP 的常量和环境变量等.最重要的是, 它很简单。
Atas ialah kandungan terperinci PHP中一个高性能的配置管理扩展Yaconf详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
