乐趣区

项目配置文件选择

.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 读取不了隐藏文件?

小小试验了一下,只有文件有读取权限都可以读取的了里面的内容。

退出移动版