中微子 / dotconst
Neutrino dotconst 包。
v1.0.0
2018-02-02 09:25 UTC
Requires
- php: >=5.6.1
Requires (Dev)
- phpunit/phpunit: ~5.7
- satooshi/php-coveralls: ~1.0
README
从 .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');