php使用glob方法引入多个文件

有时候我们有这样的需求,一个项目的入口处,需要引入多个配置文件,最简单粗暴的方法是这样的。

require(__DIR__.'/config/database.php');
require(__DIR__.'/config/redis.php');
require(__DIR__.'/config/memcache.php');

这样引入自然是可以的,但是有两个问题:

  1. 如果我们增加了配置文件,就需要在这里增加一行代码来引入配置文件。
  2. 如果我们有很多配置文件(或者其他文件),这里就会写很多引入的语句。

PHP给我们提供了一个非常方便的函数glob,这个函数可以返回指定目录下的指定文件。我们这样写:

foreach(glob(__DIR__.'/config/*.php') as $php){
    require_once $php;
}

这样就引入了config目录下所有的php文件。

而且,glob还可以支持更复杂的检索方式,像这样:

foreach(glob(__DIR__.'/config/*/config*.php') as $php){
    require_once $php;
}

这样就引入了config目录下一级目录中的所有config开头的php文件。