中微子/dotconst

Neutrino dotconst 包。

v1.0.0 2018-02-02 09:25 UTC

This package is auto-updated.

Last update: 2024-09-20 13:28:26 UTC


README

Build Status Coverage Status

.const.ini.const.[APP_ENV].ini 文件加载常量变量。

如何使用

请确保将 .const.ini.const.*.ini 文件添加到您的 .gitignore 中,以便它不会被代码库检查。

将以下内容添加到您的 .gitignore

.const.ini
.const.*.ini

创建您的 .const.ini 文件并将任何变量放入 !

Dotconst 与 .ini 文件配合使用。

每个部分都将被扁平化。每个变量都将带有部分名称作为前缀。

每个变量都将被转换为大写。例如。

[database]
user = db_user

将变成

DATABASE_USER === 'db_user'

特殊键

base_path = @php/dir
app_env = @php/env:APP_ENV
php_v = @php/const:PHP_VERSION_ID

将变成

BASE_PATH === {base path of .const.ini file}
APP_ENV === getenv('APP_ENV')
PHP_V === PHP_VERSION_ID

然后编译

define('BASE_PATH', '{base path of .const.ini file}');
define('APP_ENV', getenv('APP_ENV'));
define('PHP_V', PHP_VERSION_ID);

加载

它非常简单,只需将其添加到您的引导程序

\Neutrino\Dotconst::load('/ini_path' [, '/compile_path']);

环境覆盖

首先调用的是 ".const.ini" 文件。如果此文件中定义了变量 "APP_ENV",则 dotconst 将查找文件 ".const. {APP_ENV} .ini",并覆盖基本值。当在多个环境中工作时很有用。

; .const.ini
[app]
env = production

[database]
host = localhost
; .const.production.ini
[database]
host = 10.0.0.0

将变成

DATABASE_HOST === '10.0.0.0'

编译

为了最佳性能,您可以通过调用将加载的变量编译到一个 php 文件中

\Neutrino\Dotconst\Compile::compile('/ini_path', '/compile_path');

将为这个 ini 文件生成

; .const.ini
[database]
user = db_user
define('DATABASE_USER', 'db_user');

扩展

我可以轻松地扩展 Dotconst

class MyExtention extends \Neutrino\Dotconst\Extensions\Extension{
    
    protected $identifier = "php/my";

    public function parse($value, $path) {
        return 'my';
    }

    public function compile($value, $path){
        return "'my'";
    }
}

\Neutrino\Dotconst::addExtension(MyExtention::class);

在您的 .const.ini 文件中

[foo]
bar = @php/my

将被解析

FOO_BAR === 'my'

然后编译

define('FOO_BAR', 'my');