前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yaconf 你用过了吗?

Yaconf 你用过了吗?

作者头像
友儿
发布2022-09-11 16:15:15
1720
发布2022-09-11 16:15:15
举报
文章被收录于专栏:友儿友儿

Yaconf是鸟哥写的一个高性能的配置管理扩展

为什么要开发这个配置管理扩展?

  • 目前配置文件存在的问题?
    • 用PHP文件做配置的, 一个config目录下可能有很多'.php'不同数据结构的配置文件,而配置文件的解析耗费了很大的性能。
    • 因为数据格式种类比较多(数组、json、yaml),可读性差。
    • 配置和代码在一起,有一定的安全隐患。
    • 如mysql等配置发生改变,开发也要跟随改变。

Yaconf可以解决完美解决上面一系列的问题

今天我们大概的安装使用介绍一下

环境介绍
代码语言:javascript
复制
vagrant@ubuntu-xenial:/var/www/test$ cat /proc/version
Linux version 4.4.0-161-generic (buildd@lcy01-amd64-018) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #189-Ubuntu SMP Tue Aug 27 08:10:16 UTC 2019
vagrant@ubuntu-xenial:/var/www/test$ php -v
PHP 7.1.0 (cli) (built: Feb 26 2021 04:41:12) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
安装
代码语言:javascript
复制
git clone https://github.com/laruence/yaconf.git
cd yaconf
/usr/bin/phpize7.0                                     #我是将phpize安装到了该位置 就用你自己安装的位置就行
./configure --with-php-config=/usr/bin/php-config      #后边写你自己php-config所在的位置
make -j && make install
在PHP.ini中配置
代码语言:javascript
复制
extension=yaconf.so                          # 导入扩展            
yaconf.directory=/var/www/zip/config         # 配置文件目录, 这个配置不能通过ini_set指定, 因为必须在PHP启动的时候就确定好.
yaconf.check_delay=60                        # 多久(秒)检测一次文件变动, 如果是0就是不检测, 也就是说如果是0的时候, 文件变更只能通过重启PHP重新加载
创建db.ini文件
代码语言:javascript
复制
foo="bar"
phpversion=PHP_VERSION
env=${HOME}
arr.0=1
arr.1=2
map2.foo.name=yaconf
map2.foo.year=2015

[parent]
parent="base"
children="NULL"
[children : parent]
children="children"
代码语言:javascript
复制
<?php
//获取配置 mixed Yaconf::get(string $name, mixed $default = NULL)
//检查配置是否存在 bool Yaconf::has(string $name)
print_r(\Yaconf::get('db'));
代码语言:javascript
复制
vagrant@ubuntu-xenial:/var/www/test$ php index.php
Array
(
    [foo] => bar
    [phpversion] => 7.1.0
    [env] => /home/vagrant
    [arr] => Array
        (
            [0] => 1
            [1] => 2
        )

    [map2] => Array
        (
            [foo] => Array
                (
                    [name] => yaconf
                    [year] => 2015
                )

        )

    [parent] => Array
        (
            [parent] => base
            [children] => NULL
        )

    [children] => Array
        (
            [parent] => base
            [children] => children
            [a] => 1
        )

)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Yaconf是鸟哥写的一个高性能的配置管理扩展
    • 为什么要开发这个配置管理扩展?
      • Yaconf可以解决完美解决上面一系列的问题
        • 今天我们大概的安装使用介绍一下
          • 环境介绍
          • 安装
          • 创建db.ini文件
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档