.env
这种文件是在 laravel 框架里看到的,他是使用 phpdotenv composer 包来进行读取和使用的。
使用方法
加载 composer 包
composer require vlucas/phpdotenv
项目使用
<?php
require __DIR__ . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::create(__DIR__);
$dotenv->load();
$projectName = getenv('project_name');
$projectName = $_ENV['project_name'];
$projectName = $_SERVER['project_name'];
深入请查看项目的 README.md 文件。
yaml
YAML 试图用一种比 XML 更敏捷的方式,来完成XML所完成的任务。
安装配置
yaml 文件的使用是需要 php 加载 yaml 扩展的。yaml 扩展又依赖于 libyaml,下面以 centos7 系统为例安装:
# http://pecl.php.net/package/yaml 取最新扩展包地址
wget http://pecl.php.net/get/yaml-2.0.4.tgz
# 解压
tar -zxvf yaml-2.0.4.tgz
# 进行扩展文件夹
cd yaml-2.0.4
phpize
vim install_sh
> ./configure --with-php-config=/usr/local/php/bin/php-config
# 编译安装
sh install_sh
make -j 2
make install
# php 加载扩展
vim /usr/local/php/etc/php.ini
> extension=yaml.so
项目使用
<?php
$config = yaml_parse_file(__DIR__ . '/config.yaml');
print_r($config['project_name']);
学习经过疑问
为什么不直接使用 php 文件当配置,而用其他类型文件来配置
好像没有什么特殊的作用,不管是 .env 还是 yaml 文件都需要配置,反而直接 php 文件当配置会方便易懂一些(.env/yaml 都有自己的语法,不懂的人需要学习)。
.env 在 linux 中是隐藏文件的意思,file_get_contents 读取不了隐藏文件?
小小试验了一下,只有文件有读取权限都可以读取的了里面的内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。